上一篇已经实现了VS2017编译OPENSSL库了,那么我们就可以对数据进行加密了。
先看看效果
本篇利用OPENSSL的RC4加密算法进行了对数据的加解密,代码如下
//RC4加密
const char *CCode::Rc4Encode(const char *pstData, const char *pstPass)
{
int iDataLen = (int)strlen(pstData);
int iPassLen = (int)strlen(pstPass);
if ((0 == iDataLen) || (0 == iPassLen))
{
return NULL;
}
RC4_KEY key;
RC4_set_key(&key, iPassLen, (unsigned const char *)pstPass);//设置密钥
unsigned char *pstOut = new unsigned char[iDataLen + 1];
memset(pstOut, 0, iDataLen + 1);
RC4(&key, iDataLen, (unsigned const char*)pstData, pstOut);//加密明文
return (const char *)pstOut;
}
//RC4解密
const char *CCode::Rc4Decode(const char *pstData, const char *pstPass)
{
int iPassLen = (int)strlen(pstPass);
int iDatalen = (int)strlen(pstData);
if ((0 == iDatalen) || (0 == iPassLen))
{
return NULL;
}
unsigned char *pstOut = new unsigned char[iDatalen + 1];
memset(pstOut, 0, iDatalen + 1);
RC4_KEY key;
RC4_set_key(&key, iPassLen, (unsigned const char*)pstPass);//设置密钥
RC4(&key, iDatalen, (unsigned const char*)pstData, pstOut);//解密密文
return (const char *)pstOut;
}
其实OPENSSL的算法是公开的,只是密钥是自己随机生成的,所以我们可以用OPENSSL的算法来进行加解密,其实OPENSSL还有很多加密算法,下一篇来试试AES加密。