c++加密解密算法用java方法替代
2015-08-05 09:48
543 查看
有两个c++文件,里面有加密,解密算法,求大神把加密,解密算法用java实现,求大神。
文件Crypt.h
#if !defined(AFX_CRYPT_H__613C5174_16F0_42A5_9493_C7489534C080__INCLUDED_)
#define AFX_CRYPT_H__613C5174_16F0_42A5_9493_C7489534C080__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CCrypt
{
static char *m_key;
public:
static CString decrypt(CString str);
static CString encrypt(CString str);
};
#endif // !defined(AFX_CRYPT_H__613C5174_16F0_42A5_9493_C7489534C080__INCLUDED_)
文件Crypt.cpp
#include "stdafx.h"
#include "crypt.h"
#include <atlconv.h>
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Konstruktion/Destruktion
//////////////////////////////////////////////////////////////////////
char* CCrypt::m_key = "FILEZILLA1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
CString CCrypt::encrypt(CString str)
{
USES_CONVERSION;
int pos=str.GetLength()%strlen(m_key);
CString ret;
LPCSTR lpszAscii=T2CA(str);
for (unsigned int i=0;i<strlen(lpszAscii);i++)
{
CString tmp=ret;
ret.Format(_T("%s%03d"),tmp,(unsigned char)lpszAscii[i]^m_key[(i+pos)%strlen(m_key)]);
}
return ret;
}
CString CCrypt::decrypt(CString str)
{
USES_CONVERSION;
LPCSTR lpszAscii=T2CA(str);
int pos=(strlen(lpszAscii)/3)%strlen(m_key);
CString ret;
char buffer[4];
buffer[3]=0;
for (unsigned int i=0;i<strlen(lpszAscii)/3;i++)
{
memcpy(buffer,lpszAscii+i*3,3);
TCHAR tmp[2];
tmp[1]=0;
tmp[0]=atoi(buffer)^m_key[(i+pos)%strlen(m_key)];
ret+=tmp;
}
return ret;
} 阅读更多
文件Crypt.h
#if !defined(AFX_CRYPT_H__613C5174_16F0_42A5_9493_C7489534C080__INCLUDED_)
#define AFX_CRYPT_H__613C5174_16F0_42A5_9493_C7489534C080__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CCrypt
{
static char *m_key;
public:
static CString decrypt(CString str);
static CString encrypt(CString str);
};
#endif // !defined(AFX_CRYPT_H__613C5174_16F0_42A5_9493_C7489534C080__INCLUDED_)
文件Crypt.cpp
#include "stdafx.h"
#include "crypt.h"
#include <atlconv.h>
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Konstruktion/Destruktion
//////////////////////////////////////////////////////////////////////
char* CCrypt::m_key = "FILEZILLA1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ";
CString CCrypt::encrypt(CString str)
{
USES_CONVERSION;
int pos=str.GetLength()%strlen(m_key);
CString ret;
LPCSTR lpszAscii=T2CA(str);
for (unsigned int i=0;i<strlen(lpszAscii);i++)
{
CString tmp=ret;
ret.Format(_T("%s%03d"),tmp,(unsigned char)lpszAscii[i]^m_key[(i+pos)%strlen(m_key)]);
}
return ret;
}
CString CCrypt::decrypt(CString str)
{
USES_CONVERSION;
LPCSTR lpszAscii=T2CA(str);
int pos=(strlen(lpszAscii)/3)%strlen(m_key);
CString ret;
char buffer[4];
buffer[3]=0;
for (unsigned int i=0;i<strlen(lpszAscii)/3;i++)
{
memcpy(buffer,lpszAscii+i*3,3);
TCHAR tmp[2];
tmp[1]=0;
tmp[0]=atoi(buffer)^m_key[(i+pos)%strlen(m_key)];
ret+=tmp;
}
return ret;
} 阅读更多
相关文章推荐
- JAVA加密C++解密简单方法
- DES 算法的 C++ 与 JAVA 互相加解密
- java RSA 加密解密算法 入门
- 字符串内存理解和js加密解密与java后端解密对应方法
- Java和C#交叉加密解密方法(DES)
- AES加密解密算法---java
- 加密解密算法java实现(2)—DES
- java实现的RC4加密解密算法示例
- DES 算法的 C++ 与 JAVA 互相加解密
- Java加密解密快速入门上篇【包括MD5、BASE64、DES、RSA等算法】
- [置顶] Java、Android、IOS通用的加密解密方法
- Java加密解密算法-PBE加密解密
- Java与Node.js利用AES加密解密出相同结果的方法示例
- Java中RSA加密解密的实现方法分析
- 第十七篇:JAVA加密解密之PBE(Password Based Encryption)算法
- C# 与JAVA 的RSA 加密解密交互,互通,C#使用BouncyCastle来实现私钥加密,公钥解密的方法
- PHP服务器生成密钥,java端加密,php解密的方法。更新Android加密方法
- DES 算法的 C++ 与 JAVA 互相加解密
- java常用的加密解密方法
- 在Java中利用Apache Commons Codec API实现常见的加密解密算法,如:md5,sha256