怎样用md5加密算法对用户密码进行加密??

fjl1210 2005-04-12 12:27:52
本人上网查了一个加密算法——md5,想必各位大虾都见过了。(头文件:md5.h,源代码文件:md5c.c)
本人拿这个算法对用户密码进行加密,可就是不懂的怎样添加进去。
要对其加密的语句如下:
#include "md5.h"
.........
.........
user[i].user=struser;//从对话框获取用户名
user[i].pass=strpass;//从对话框获取密码
RWini("security.ini",no,"user",struser,false);//把用户名写入.ini文件中
RWini("security.ini",no,"pass",MDString(strpass),false);//把密码写入.ini文件中
//----------------------------------
问题就在于MDString(strpass),运行时出现如下提示:
cannot convert parameter 1 from 'char [2]' to 'class CString *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
我知道这样直接调用不行,因为MDString()函数没有返回值,但我不知道怎么调整。先谢谢各位了。
//----------------------------------
AfxMessageBox("添加成功!",MB_OK);//添加成功
...全文
889 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fjl1210 2005-04-13
  • 打赏
  • 举报
回复
我现在只关心代码怎么实现而不关心是否会被破译
我现在只急我代码怎么实现啊!!菜鸟真是可怜哪!
被公司冷落一边不说,还遭同事瞧不起啊!
pepsi1980 2005-04-13
  • 打赏
  • 举报
回复
md5的典型应用是对一段信息(message)产生信息摘要(message-digest),以防止被篡改。
md5还广泛用于加密和解密技术上。比如在unix系统中用户的密码就是以md5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成md5值,然后再去和保存在文件系统中的md5值进行比较,进而确定输入的密码是否正确。
所以,楼上不必郁闷:),这个是RSA写的MD5的用法,比较好!
http://cosoft.org.cn/html/osl/showFiles.php?group_id=14015
fjl1210 2005-04-12
  • 打赏
  • 举报
回复
代码里面有MD5Update()这个函数
我也尝试让它返回值但是数据类型又不匹配
总是提示字符类型不能转换。怎么办哪
昨天下午搞到现在都还是无里头。恳求大虾多多指点了
vcmute 2005-04-12
  • 打赏
  • 举报
回复
修改源代码,让他返回结果
如果没有,google搜MD5Update
fjl1210 2005-04-12
  • 打赏
  • 举报
回复
MDString()函数只是直接用printf输出结果
我现在要的是返回值怎么解决?
晨星 2005-04-12
  • 打赏
  • 举报
回复
MDString没有返回值?那它是怎么用的,参数传进去就拉到了?
晨星 2005-04-12
  • 打赏
  • 举报
回复
写错了。
int hex[64];
for(int i = 0;i < 16; i++)
sprintf(hex + i * 2, "%02X", digest[i]);
晨星 2005-04-12
  • 打赏
  • 举报
回复
你也应该自己编一个MDPrint把digest打印成16进制字符串,比如:

int hex[64];
for(int i = 0;i < 16; i++)
sprintf(s + i * 2, "%02X", digest[i]);

然后就可以:

RWini("security.ini",no,"pass",hex,false);
晨星 2005-04-12
  • 打赏
  • 举报
回复
你应该这么用:
MDInit (&context);
MDUpdate (&context, string, len);
MDFinal (digest, &context);

此时,结果就保存在digest中。

人家的MDString只是个示例程序而已,告诉你怎么用这套代码而已。

还有,MD5不是加密算法,是散列算法。怎么大家都说“MD5加密”,郁闷。:(
fjl1210 2005-04-12
  • 打赏
  • 举报
回复
MDString函数定义如下:
static void MDString (string)
char *string;
{
MD5_CTX context;
unsigned char digest[16];
unsigned int len = strlen (string);

MDInit (&context);
MDUpdate (&context, string, len);
MDFinal (digest, &context);

printf ("MD%d (\"%s\") = ", MD, string);
MDPrint (digest);
printf ("\n");
}
晨星 2005-04-12
  • 打赏
  • 举报
回复
对呀,MDString函数的原型是什么?
怎么可以“让它返回值”呢?它原来是什么样子的?
pepsi1980 2005-04-12
  • 打赏
  • 举报
回复
MDString()把这个函数定义贴出来啊,不贴出来别人怎么帮你解决啊,就是字符串转换问题

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧