一个C++加密工具EncryptDecrypt.dll

一个C++加密工具EncryptDecrypt.dll

EncryptDecrypt.dll文件封装了Rijndael加密算法,  结合SHA-256与 CNewRandom  ( http://www.codeproject.com/Articles/5489/KeePass-Password-Safe这个里面用到的基于SHA-256伪随机数)加密与解密字符串.......这个加密工具有个重要的特性就是, 就算是用同样的密钥加密同一个字符串, 得到的密文却不一样...但是又都能解密回来.....

用密钥admin#2sha加密字符串123456得到的结果是(被换行了, 下面的粗体字)

S3AU7TOsJWFPNP8GfT/dQ68MHmAOn/sCOLY9gizo6//+WpwT2mI1v3E4fkDsveeJcJsK/KlmFd3vBhjy
QeAtPGTfu+ZNPPtYs9pggrEv45cY4BNDLbuQoLl+RwzGDJZTxfP1WXehumgqqeoK0NHyalCWLNZY
QqfU6pz1cB8oRWTPDX/wFIN7g6CGAQC8wYpmAS8M9ppV79nkViFB


这个dll文件的试用实例放在这个压缩包里面:  http://download.csdn.net/detail/hemmingway/4564654

里面有这些文件(DLL的核心代码没有放进去):  
图片

试用方法,
1,将将压缩包文件解压到C++工程下面, PS:   IEncryption.h文件是C++利用纯虚函数实现接口的演示....EncryptDecrypt.dll是继承于 IEncryption.h中类IEncryption的.....类似于C#的接口.....

2, 包含头文件 #include "Encrypt.h"
3,加密字符串,  sPWD ,  sEncryptedPWD  m_sTmp分别为明文, 密文,与密钥...nLen是加密时产生的一个长度, 解密时需要这个参数

//处理密文
CString sPWD, sEncryptedPWD;
int nLen = 0;

CEncrypt crypt( m_sTmp);
if ((bSuccess = CEncrypt::CanEncrypt()) == TRUE)
{
sPWD.Format(_T("%s"), lpPwd);
sEncryptedPWD = crypt.Encrypt(sPWD, nLen);
}

4,解密字符串
CEncrypt crypt(m_sTmp);
if ((bSuccess = CEncrypt::CanEncrypt()) == TRUE)
sPWD = crypt.Decrypt(sEncryptedPWD, nLen);
 
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值