在做一个很小的办公管理软件,需要对用户密码加密,不需要很复杂
UNIX下有个crypt(),VC有没有类似的简单好用的加密函数
UNIX下有个crypt(),VC有没有类似的简单好用的加密函数
解决方案 »
- pci驱动读写问题,请大家来看看。
- socket connect的问题
- 队列问题
- 100分求win95-a-developers-guide英文版免费下载
- 菜啊菜,讨教高手.
- 请教一个网络流量控制的问题?
- 如何编程实现以HTTP方式上传文件?
- 我用VB写了一个简单的com服务器程序与客户端程序,请问:
- Windows IOCP模型是什么????//与WSAAsyncSelect模式什么联系?
- 高分请教DirectX相关电子书的下载链接
- 如何创建一个启动界面?看过问题在回答!!不是简单的问题呀
- 请问高手:我在一个界面上弹出一个属性对话框,会偶尔出现一个奇怪的现象(见内容),高分请教(本人不是菜鸟)
看这个头文件,里面就是微软的加密库函数
一、取得编码消息块的大小,调用CryptMsgCalculateEncodedLength(PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0, CMSG_DATA, NULL, NULL, 要编码的消息长度 + 1),该函数返回消息块大小。
二、得到编码消息块大小后就分配指定大小的空间。
三、打开要编码的消息,调用CryptMsgOpenToEncode(PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0,CMSG_DATA, NULL, NULL, NULL),该函数返回一个消息句柄。
四、消息更新,利用刚刚得到的消息句柄将消息更新,调用CryptMsgUpdate(消息句柄, 要编码的明文, 编码消息长度 + 1, 是否位最后的消息编码,如果你只调用一次编码则该参数为TRUE)。
五、取得消息编码后的密文,调用CryptMsgGetParam(消息句柄, CMSG_BARE_CONTENT_PARAM, 0, 第二步分配的存储编码后消息的缓存, 缓存大小),此方法调用成功后密文则存放在缓存中可以写成文件了。
六、关闭消息编码。解码:
一、打开要解码的消息,调用CryptMsgOpenToDecode(PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0, CMSG_DATA, NULL, NULL, NULL),该函数返回一个消息句柄。
二、将密文(编码后的密文)更新,调用CryptMsgUpdate(消息句柄, 密文内容, 密文大小,是否为最后一次调用)。
三、取得解码后的明文大小,调用CryptMsgGetParam(消息句柄,CMSG_CONTENT_PARAM, 0, NULL, &dwSize)。该函数成功后dwSize为解码后的明文大小。
四、为保存解码后的明文分配dwSize的存储空间。
五、取得解码后的明文内容,调用CryptMsgGetParam(消息句柄, CMSG_CONTENT_PARAM, 0, 明文存储缓存, 缓存大小)。该函数调用成功后即可得到接密后的明文。
六、关闭消息解码。
// 手痛了,费神了。。汗!!
//其中的13和95可根据需要换成别的数字
//算法很简单,解密过程就不说了。char* CTttDlg::ROT13(char *szPassword)
{
if(szPassword==NULL)
return NULL;
for(int i=0;*(szPassword+i)!='\0';i++)
*(szPassword+i)=(*(szPassword+i)+13)%95;
return szPassword;
}