SHA 256 from Java to C#

本文关键字:to Java from SHA | 更新日期: 2023-09-27 18:02:59

我正在尝试为下面的函数创建从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 from Java to C#

如果只是计算一些数据的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代码是做什么的,但我希望它能有所帮助。