A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 于振发 中级黑马   /  2013-9-26 00:11  /  1595 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 于振发 于 2013-9-26 17:06 编辑

                     求解MD5加密是怎样实现的这个过程,在这个过程当作做了一些什么操作,附上代码哦~多谢!

评分

参与人数 1技术分 +1 收起 理由
茹化肖 + 1

查看全部评分

3 个回复

倒序浏览
MD5也是一个类 位于System.Security.Cryptography命名空间下,该类有static Create(string)方法
返回值为MD5类型,再Tostring()得到MD5加密后的字符串

要是你问的是MD5是怎样算的。。。这个我也不知道
回复 使用道具 举报
本帖最后由 念念念念_、 于 2013-9-26 17:03 编辑

static void Main(string[] args)
        {
            Console.WriteLine("请输入一个字符串:");
            string msg = Console.ReadLine();
            string md5 = Md5Encrypt(msg);
            Console.WriteLine(md5);
            Console.WriteLine("ok");
            Console.ReadKey();
        }

private static string Md5Encrypt(string msg)
        {
            //创建一个MD5对象
            MD5 md5 = MD5.Create();

            //2.把字符串变为一个byte[]
            //对于中文或者某些字符,采用不同的编码生成的byte[]是不一样的,
            //所以造成了采用不同编码生成的md5值不一样的情况。
            byte[] buffer = System.Text.Encoding.UTF8.GetBytes(msg);

            //3.将一个byte[]通过MD5计算得到一个新的byte[],新的byte[]就是计算md5后的结果。
            byte[] md5Buffer = md5.ComputeHash(buffer);

            //释放资源
            md5.Clear();



            //4.将计算后的结果直接显示为字符串
            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < md5Buffer.Length; i++)
            {
                //x2:把每个数字转换为16进制,并保留两位数字。
                sb.Append(md5Buffer.ToString("x2"));
            }


            return sb.ToString();

        }

回复 使用道具 举报
MD5算法是将密文转换为32位的十六进制的字符串
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马