.net core中你的MD5用对了吗?
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
StringBuilder 版本public static string Md5_StringBuilder(string input){ using var md5 = MD5.create(); var inputBytes = Encoding.UTF8.GetBytes(input); var hashBytes = md5.ComputeHash(inputBytes); var sb = new StringBuilder(); foreach (var hashByte in hashBytes) { sb.Append(hashByte.ToString("X2")); } return sb.ToString(); } BitConverter 版本public static string Md5_BitConverter(string input){ using var md5 = MD5.create(); var inputBytes = Encoding.UTF8.GetBytes(input); var hashBytes = md5.ComputeHash(inputBytes); return BitConverter.ToString(hashBytes).Replace("-", ""); } StringConcat 版本public static string Md5_StringConcat(string input){ using var md5 = MD5.create(); var inputBytes = Encoding.UTF8.GetBytes(input); var hashBytes = md5.ComputeHash(inputBytes); var output = string.Empty; foreach (var hashByte in hashBytes) { output += hashByte.ToString("X2"); } return output; } 性能对比
Benchmark
没错,这就是我要说的, 从 .net 5.0 开始提供了 2 个非常高效的方法
Convert.ToHexString 实例版本public static string MD5_HexConvert_Instance(string input){ using var md5 = MD5.create(); var inputBytes = Encoding.UTF8.GetBytes(input); var hashBytes = md5.ComputeHash(inputBytes); return Convert.ToHexString(hashBytes); } MD5.HashData 静态版本(强烈建议)public static string MD5_HexConvert_Static(string input){ var inputBytes = Encoding.UTF8.GetBytes(input); var hashBytes = MD5.HashData(inputBytes); return Convert.ToHexString(hashBytes); } 总结
作者:Broadm 来源:博客园 该文章在 2023/10/28 9:35:13 编辑过 |
相关文章
正在查询... |