当前位置: 首页 > 知识库问答 >
问题:

Delphi与Node.js中SHA256的差异

单于奇略
2023-03-14

我正在node.js中生成哈希

const sha256 = crypto.createHash('sha256');
const hash = sha256.update(password).digest('base64');

对于密码“123abc”-我得到“3rmkhj17kevugwxs9/hqss1phswywcldh4p1a8tw/4a='

然后我在delphi中也这样做

Hash:= (TNetEncoding.Base64.Encode(THashSHA2.GetHashString(Str, SHA256)));

对于密码“123abc”-我得到“zgqxmzbhodq5zddimjllntu0mwiwnwqyzidmodzhngfjzngywzmy4ma==”

为什么不同?我做错了什么?

共有1个答案

司空丰
2023-03-14

要用Delphi获得Node.js给出的相同值,您必须这样做:

   Hash := TNetEncoding.Base64.EncodeBytesToString(THashSHA2.GetHashBytes(Str, SHA256));
 类似资料:
  • 问题内容: 我在由.NET生成的数据库中存储SHA256用户密码哈希,我需要能够使用Node.js进行检查。唯一的问题是.NET和Node.js为相同的密码创建不同的哈希。 。净: Node.js(使用加密): 我找到了,但是无法弄清楚如何实施他的解决方案。 问题答案: 编辑:您正在C#中使用UTF-16,必须在两种语言中使用相同的编码: Node.js: C#:

  • 我可以在Android应用程序JSON中接收$data。 我得解密应用程序里的$数据。 我使用的结构如下所示: 但是将engine定义为“AES”而将crypto定义为“AES/CBC/PKCS5Padding”会引发一个错误,因为它与来自服务器的不等价。 另一方面,将加密函数与该密码函数一起使用,然后再对其进行解密也是有效的,因为加密和解密都是使用相同的密钥iv、引擎和密码完成的。 哪一个是PH

  • 问题内容: 我在Node.js模块中找到了以下合同: 我不知道什么之间的不同和为什么都被用在这里。 问题答案: 设置允许在时像函数一样调用函数。简单地设置将不允许导出函数,因为节点导出了对象引用。以下代码不允许用户调用该函数。 module.js 以下内容无效。 如果设置以下内容,则将起作用。 安慰 基本上, node.js 不会导出当前引用的对象,而是导出最初引用的对象的属性。尽管 Node.j

  • 我使用的是一个来自chillkat的Delphi组件,它为我做AES加密。它就像一个魅力,服务器接受我的加密请求。所以我尝试使用mcrypt创建一个php挂件。但与Delphi Chillcat结果相比,PHP mcypt结果是不同的,即使所有参数都相同。因此,服务器拒绝php请求。 所有加密设置都是相同的: < li >密码名称:AES 128 < li >密码模式:ECB < li >填充方案

  • import "crypto/sha256" sha256包实现了SHA224和SHA256哈希算法,参见FIPS 180-4。 Constants func Sum256(data []byte) [Size]byte func New() hash.Hash func Sum224(data []byte) (sum224 [Size224]byte) func New224() hash.H

  • 在swift中似乎有两个相等运算符:双相等()和三相等(),这两者有什么区别?