Asp.Net 实现SHA1加密

SHA1和MD5一样是编程开发中常用的非对称加密算法,它是一种密码散列函数。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。不过,SHA1目前已经被破解,不再是一种安全的受推荐的密码算法。一般推荐是SHA2或者SHA3来替换SHA1。目前有很多老项目的接口仍然使用SHA1加密算法,也基于学习目的,把SHA1算法的.Net/C#实现方法记录如下

最佳解决方案

using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using System.Text;

namespace WebToolkit.Encrypt
{
    public class SHA1Helper
    {
        /// <summary>
        /// Net实现Sha1加密算法
        /// </summary>
        /// <param name="str">要加密的字符串,默认编码为UTF-8</param>
        /// <returns>加密后的十六进制的哈希散列(字符串)</returns>
        public static string Sha1Signature(string str)
        {
            return Sha1Signature(str, Encoding.UTF8);
        }

        public static string Sha1Signature(string str, Encoding encoding)
        {
            var buffer = encoding.GetBytes(str);
            var data = SHA1.Create().ComputeHash(buffer);
            StringBuilder sub = new StringBuilder();
            foreach (var t in data)
            {
                sub.Append(t.ToString("X2"));
            }

            return sub.ToString();
        }
    }
}

爱开发V T0 被采纳率100%
2020-10-13 14:37
打赏 0 1
页面统计
1365 访问
0 帮助
0.00 打赏

hierror 2019 © hierror.com 京ICP备13026190号-1

通知消息
  • 暂无任何消息