首页 > 代码库 > md5作为检验数据完整性的加密算法最常用,c#实现MD5的方法
md5作为检验数据完整性的加密算法最常用,c#实现MD5的方法
md5的C#实现方法,自定义md5方法,完全跳过现今网络上的md5库,实现md5加密的完全安全。
md5虽然很强大,但运用不好照样可以被黑。简单数字和字母的短字符串md5的加密字符在现在的网络中一下就可以查询到,也就是可以直接解密,md5库里直接就有了。所以md5的加密还是自己定义个规则,这样更安全。
请看下面例子的“自定义MD5方法”中的“Md5EncodeMamicode”,简单的实现思路,更安全的安全方法。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Security.Cryptography;namespace M_Class{ /// <summary> /// [MD5加密][mamicode.com提供] /// </summary> public class MD5code { /// <summary> /// [构造函数] /// </summary> public MD5code() { } /// <summary> /// 默认加密方式 /// </summary> /// <param name="str"></param> /// <returns></returns> public static string Md5Encode(string str) { return Md5Encode32(str); } /// <summary> /// 32位MD5算法加密 /// </summary> /// <param name="str">需要加密的字符串</param> /// <returns>加密后的字符串</returns> public static string Md5Encode32(string str) { string password = ""; MD5 md5 = MD5.Create(); byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); foreach (byte b in s) password += b.ToString("X2"); return password; } #region 自定义MD5方法 /// <summary> /// mamicode的MD5加密法 /// </summary> /// <param name="uid">用户ID</param> /// <param name="MamicodePWD">需要加密的字符串</param> /// <returns>加密后的字符串</returns> public static string Md5EncodeMamicode(string uid, string MamicodePWD) { ///加密规则说明:分3步 ///第1步:对pwd进行一次md5加密 ///第2步:拼接新字符串,用户ID+pwd+第1步加密后字符串取第5位开始的15位字符 ///第3步:将第2步拼接的字符串再一次md5加密 string Secretkey1 = Md5Encode32(MamicodePWD); string Secretkey2 = uid + Secretkey1 + Secretkey1.Substring(5, 15); string Secretkey3 = Md5Encode32(Secretkey2); return Secretkey3; } #endregion }}
md5作为检验数据完整性的加密算法最常用,c#实现MD5的方法
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。