java - SHA 256 从 Java 到 C#

标签 java c# sha sha256 message-digest

我正在尝试为以下函数创建从 Java 到 C# 的等效代码:

public static String SHA256 (List<String> parametros, String clave) 

{
try {
    MessageDigest sha = MessageDigest.getInstance("SHA-256");
    for(String param:parametros){
        byte p[] = new byte[param.length()];
        p = param.getBytes();
        sha.update(p);
    }
    byte bClave[] = new byte[clave.length()];
    bClave = clave.getBytes();
    byte[] hash = sha.digest(bClave);
    return ( hexString256 (hash));
   }catch (NoSuchAlgorithmException e){
   return ("Error");
  }
}

sha.update(p); 行有什么建议吗?

最佳答案

如果只是计算某些数据的 SHA-256 哈希值,也许这会给出一些想法:

// using System.Security.Cryptography;
public static string ComputeHashSha256(byte[] toBeHashed)
{
    using (var sha256 = SHA256.Create())
    {
        return Encoding.UTF8.GetString(sha256.ComputeHash(toBeHashed));
    }
}

更新:

如果目标是在连接列表字符串后计算它们的哈希值,您可以使用另一种方法,例如(或者如果您愿意,可以将它们合并为一个):

public static string ComputeSHA256HashOfAListOfStrings(List<string> parameters)
{
    var concatted = string.Join(string.Empty, parameters);
    var byteOfConcattedString = Encoding.UTF8.GetBytes(concatted);
    return ComputeHashSha256(byteOfConcattedString);
}

请注意,我只是想让这个示例为您提供一个引用,因为我不太清楚上面的 Java 代码的作用,但我希望它能有所帮助。

关于java - SHA 256 从 Java 到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31428397/

相关文章:

java - 如何在jboss上传递配置参数

java - 卢塞恩 6.6 : What is the current way to create a custom query using analyzers and filters?

c# - 审核/登录 ASP.NET MVC3

php - openssl 和 php SHA512 的区别

java - 两个日期之间的差异和当前时间的百分比java

java.lang.IllegalArgumentException : Default constructor for class com. b.de 无法访问

C# ProcessStartInfo 读取输出 "live"(并发)

c# - AutoMapper - 条件映射

c++ - for-lops 如何在 C++ 示例 : calculating hashes 中准确工作

node.js - 使用 Webpack 捆绑 sha3/二进制模块