.net core中你的MD5用對(duì)了嗎?
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
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; } 性能對(duì)比
Benchmark
沒(méi)錯(cuò),這就是我要說(shuō)的, 從 .net 5.0 開(kāi)始提供了 2 個(gè)非常高效的方法
Convert.ToHexString 實(shí)例版本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)版本(強(qiáng)烈建議)public static string MD5_HexConvert_Static(string input){ var inputBytes = Encoding.UTF8.GetBytes(input); var hashBytes = MD5.HashData(inputBytes); return Convert.ToHexString(hashBytes); } 總結(jié)
作者:Broadm 來(lái)源:博客園 該文章在 2023/10/28 9:35:13 編輯過(guò) |
相關(guān)文章
正在查詢... |