相关疑难解决方法(0)

C#和Javascript SHA256散列的代码示例

我在服务器端运行的C#中有一个算法,它会散列一个base64编码的字符串.

byte[] salt = Convert.FromBase64String(serverSalt); // Step 1
SHA256Managed sha256 = new SHA256Managed(); // Step 2
byte[] hash = sha256.ComputeHash(salt); // Step 3
Echo("String b64: " + Convert.ToBase64String(hash)); // Step 4
Run Code Online (Sandbox Code Playgroud)

然后根据哈希的数据库列表检查哈希.我喜欢用javascript实现相同的功能,使用serverSalt,因为它是通过websocket从C#传输的.

我知道在C#和Javascript之间有不同的SHA-256哈希,因为C#和Javascript有不同的字符串编码.但我知道我可以在字节数组中填充零以使Javascript表现为C#(上面的步骤1已经解决).

var newSalt  = getByteArrayFromCSharpString(salt); // Pad zeros where needed
function getByteArrayFromCSharpString(inString)
{
  var bytes = [];
  for (var i = 0; i < inString.length; ++i)
{
    bytes.push(inString.charCodeAt(i));
    bytes.push(0);
}
return bytes;
}
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供一些有关我可以用来重现步骤2,3和4的算法的见解吗?

PS:已经有问题和答案,但没有一个代码片段.

javascript c# base64 sha

3
推荐指数
1
解决办法
8403
查看次数

标签 统计

base64 ×1

c# ×1

javascript ×1

sha ×1