.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 靜態(tài)版本(強烈建議)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 編輯過 |
相關文章
正在查詢... |