SHA 256 从 Java 到 C#
SHA 256 from Java to C#
我正在尝试为以下函数创建从 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 到 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 代码的作用,但我希望它能有所帮助。