gpt4 book ai didi

c# - 使用 .Net 生成 SHA256 哈希的不同结果和 react native 库(相同输入)

转载 作者:太空宇宙 更新时间:2023-11-03 22:54:27 24 4
gpt4 key购买 nike

在 .Net 中,我以这种方式生成哈希:

Convert.ToBase64String(SHA256.Create().ComputeHash(Encoding.UTF8.GetBytes("123456")));

结果是:“jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI="

现在我使用这个 library 在 React Native 应用程序中生成哈希:

import { sha256 } from 'react-native-sha256';
return await sha256('123456');

结果是:“8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92”

不确定我做错了什么......

编辑:

最终解决方案(感谢 Martin Backasch):

var inputBytes = Encoding.UTF8.GetBytes("123456");
var hashBytes = SHA256.Create().ComputeHash(inputBytes);
return BitConverter.ToString(hashBytes).Replace("-", string.Empty).ToLower();

最佳答案

库的结果是HEX。您必须将其转换为 Base64

试试 here

输入:

"8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92"

输出:

"jZae727K08KaOmKSgOaGzww/XVqGr/PKEgIMkjrcbJI="

您可以使用 microsoft 给出的示例或作为快速片段将 C# 结果从 Base64 转换为 HEX:

var yourResult = Convert.ToBase64String(SHA256.Create()
.ComputeHash(Encoding.UTF8
.GetBytes("123456")));

var apiResult = "8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92";

var yourHexResult = BitConverter.ToString(Convert.FromBase64String(yourResult))
.Replace("-", string.Empty)
.ToLower();

Debug.Assert(yourHexResult == apiResult, "yourHexResult != apiResult");

关于c# - 使用 .Net 生成 SHA256 哈希的不同结果和 react native 库(相同输入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46075829/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com