本人上网查了一个加密算法——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);//添加成功

解决方案 »

  1.   

    MDString没有返回值?那它是怎么用的,参数传进去就拉到了?
      

  2.   

    MDString()函数只是直接用printf输出结果
    我现在要的是返回值怎么解决?
      

  3.   

    修改源代码,让他返回结果
    如果没有,google搜MD5Update
      

  4.   

    代码里面有MD5Update()这个函数
    我也尝试让它返回值但是数据类型又不匹配
    总是提示字符类型不能转换。怎么办哪
    昨天下午搞到现在都还是无里头。恳求大虾多多指点了
      

  5.   

    MDString()把这个函数定义贴出来啊,不贴出来别人怎么帮你解决啊,就是字符串转换问题
      

  6.   

    对呀,MDString函数的原型是什么?
    怎么可以“让它返回值”呢?它原来是什么样子的?
      

  7.   

    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");
    }
      

  8.   

    你应该这么用:
    MDInit (&context);
    MDUpdate (&context, string, len);
    MDFinal (digest, &context);此时,结果就保存在digest中。人家的MDString只是个示例程序而已,告诉你怎么用这套代码而已。还有,MD5不是加密算法,是散列算法。怎么大家都说“MD5加密”,郁闷。:(
      

  9.   

    你也应该自己编一个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);
      

  10.   

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

  11.   

    md5的典型应用是对一段信息(message)产生信息摘要(message-digest),以防止被篡改。
    md5还广泛用于加密和解密技术上。比如在unix系统中用户的密码就是以md5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成md5值,然后再去和保存在文件系统中的md5值进行比较,进而确定输入的密码是否正确。 
    所以,楼上不必郁闷:),这个是RSA写的MD5的用法,比较好!
    http://cosoft.org.cn/html/osl/showFiles.php?group_id=14015