首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取字符串的SHA-256字符串

获取字符串的SHA-256字符串
EN

Stack Overflow用户
提问于 2013-06-08 20:05:18
回答 3查看 80.1K关注 0票数 52

我有一些string,我想使用C#用SHA-256散列函数对其进行散列。我想要这样的东西:

代码语言:javascript
复制
 string hashString = sha256_hash("samplestring");

框架中有没有内置的东西可以做到这一点?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-08 23:57:19

实现方式可能是这样的

代码语言:javascript
复制
public static String sha256_hash(String value) {
  StringBuilder Sb = new StringBuilder();

  using (SHA256 hash = SHA256Managed.Create()) {
    Encoding enc = Encoding.UTF8;
    Byte[] result = hash.ComputeHash(enc.GetBytes(value));

    foreach (Byte b in result)
      Sb.Append(b.ToString("x2"));
  }

  return Sb.ToString();
}

Linq编辑:实现更简洁,但可读性可能较差

代码语言:javascript
复制
public static String sha256_hash(String value) {
  using (SHA256 hash = SHA256Managed.Create()) {
    return String.Concat(hash
      .ComputeHash(Encoding.UTF8.GetBytes(value))
      .Select(item => item.ToString("x2")));
  }
} 

编辑2: .NET核心、.NET5、.NET6 ...

代码语言:javascript
复制
public static String sha256_hash(string value)
{
    StringBuilder Sb = new StringBuilder();

    using (var hash = SHA256.Create())            
    {
        Encoding enc = Encoding.UTF8;
        byte[] result = hash.ComputeHash(enc.GetBytes(value));

        foreach (byte b in result)
            Sb.Append(b.ToString("x2"));
    }

    return Sb.ToString();
}
票数 137
EN

Stack Overflow用户

发布于 2021-09-13 20:32:22

在.net核心中,这是一种更好/更简洁的方式:

代码语言:javascript
复制
public static string sha256_hash( string value )
{
  using var hash = SHA256.Create();
  var byteArray = hash.ComputeHash( Encoding.UTF8.GetBytes( value ) );
  return Convert.ToHexString( byteArray ).ToLower();
}
票数 3
EN

Stack Overflow用户

发布于 2018-05-30 02:58:20

我正在寻找内联解决方案,并根据Dmitry的回答编译了以下代码:

代码语言:javascript
复制
public static String sha256_hash(string value)
{
    return (System.Security.Cryptography.SHA256.Create()
            .ComputeHash(Encoding.UTF8.GetBytes(value))
            .Select(item => item.ToString("x2")));
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16999361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档