| .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 编辑过 | 相关文章 正在查询... |