问题标签 [sha256]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2756 浏览

cryptography - PKCS#7 SignedData and multiple digest algorithms

I'm investigating upgrading an application from SHA1 as the default PKCS#7 SignedData digest algorithm to stronger digests such as SHA256, in ways that preserve backwards compatibility for signature verifiers which do not support digest algorithms other than SHA1. I want to check my understanding of the PKCS#7 format and available options.

What think I want to do is digest message content with both SHA1 and SHA256 (or more generally, a set of digest algorithms) such that older applications can continue to verify via the SHA1, and upgraded applications can begin verifying via the SHA256 (more generally, the strongest digest provided), ignoring the weaker algorithm(s). [If there is a better approach, please let me know.]

It appears that within the PKCS#7 standard, the only way to provide multiple digests is to provide multiple SignerInfos, one for each digest algorithm. Unfortunately, this would seem to lead to a net decrease in security, as an attacker is able to strip all but the the SignerInfo with the weakest digest algorithm, which alone will still form a valid signature. Is this understanding correct?

If so, my idea was to use custom attributes within the authenticatedAttributes field of SignerInfo to provide additional message-digests for the additional digest algorithms (leaving SHA1 as the "default" algorithm for backwards compatibility). Since this field is authenticated as a single block, this would prevent the above attack. Does this seem like a viable approach? Is there a way to accomplish this or something similar without going outside of the PKCS standard?

0 投票
2 回答
274 浏览

.net - HMACSHA256 哈希值是否可以从一台服务器传输到另一台服务器?

如果我HMACSHA256.ComputeHash在我的密码编码方案中使用并在一台服务器上生成密码哈希,然后需要迁移到另一台服务器,我的哈希是否仍然编码相同?我记得看到一些关于machineKey密码学操作的设置,但我并不完全熟悉。

0 投票
4 回答
187 浏览

php - 这些密码有什么问题?

当我尝试将新用户的密码放入 MySQL 数据库时,它没有正确加密它。这是我正在使用的代码:

但是,当我检查数据库时,它不会将密码存储为 sha256 加密。它只有 16 个随机字符(应该有 ~50 个)。它出什么问题了?

0 投票
6 回答
11820 浏览

c# - 为什么我的 PHP SHA256 哈希不等于 C# SHA256Managed 哈希

为什么这些不一样?

php:

C#

0 投票
2 回答
3141 浏览

salt - 来自“email+salt”的哈希作为验证电子邮件的令牌

我正在验证用户电子邮件地址。
大多数人告诉的方式是创建一些独特的令牌将其存储在数据库中并发送给用户。

我只是用站点范围的盐来散列(sha256)电子邮件地址
并将这个散列发送给用户。

我错过了什么还是足以验证?

0 投票
6 回答
41352 浏览

python - Python 中的 SHA-256 实现

我正在寻找 SHA-256 哈希函数的 Python 实现。我想用它来更好地理解 SHA-256 函数的工作原理,我认为 Python 是最理想的语言。伪代码的限制是我无法运行/测试它,以查看我对代码的修改对输出有何影响。

0 投票
2 回答
8064 浏览

c# - 如何自行生成证书 SHA-256?

我在 C# 中使用Bouncy Castle库使用SHA-256进行签名,并且我想在测试自生成证书而不是智能卡读卡器时使用它们。

使用之前使用的自我证书,我有一个加密异常:

指定的算法无效

如果我使用具有相同自我证书的SHA-1签名,则一切顺利。使用智能卡,相同的代码可以成功运行。

makecert 参数是什么?

0 投票
3 回答
159 浏览

security - 我应该更喜欢具有更长输出的哈希算法来存储密码吗?

我正在建立一个安全性比较重要的网站(再说一遍,什么时候不重要?),我正在寻找存储密码的最佳方式。我知道 MD5 与 SHA-1 一样存在冲突问题,因此我正在考虑通过 SHA-256 或 SHA-512 存储我的密码。

存储较长的散列变体而不是较小的散列变体是否更明智?(即 512 与 256) 与 SHA-256 编码的密码相比,破解 SHA-512 编码的密码需要更多的时间吗?

另外,我读过有关使用“盐”作为密码的信息。这是什么以及它是如何工作的?我是否只是将盐值存储在另一个数据库字段中?如何将其用作哈希值计算的一部分?

0 投票
2 回答
5302 浏览

c# - 如何为 XML 消息体创建 SHA-256 哈希值

我正在尝试创建一个人类可读但可以验证为未修改的 XML 文件。

我采取的方法如下:

  • 生成 xml 消息体(应用规范化 (C14N))
  • 生成消息正文的哈希值 (SHA-256)
  • 加密哈希值 (AES-256)
  • 使用加密哈希生成消息头

我在此任务的每个阶段都遇到了问题,但当前的问题是从 XML 正文生成哈希值。

我收到一个异常“此 XmlReader 不支持 ReadContentAsBase64 方法。使用 CanReadBinaryContent 属性来确定阅读器是否实现了它。” 但我不知道如何实现 XElement 的读取。

xml的一个例子如下

这是我一直试图让工作无济于事的代码:

0 投票
1 回答
3290 浏览

php - PHP 的 hash_hmac 函数的 C++ 等价物是什么?

我正在将 PHP 应用程序移植到 C++。PHP 应用程序正在使用这个函数:

hash_hmac — 使用 HMAC 方法生成键控散列值

如果我有这段代码,它实际上在做什么?

我知道它使用 sha256 和我的密钥加密了一些数据,但是如何在 C++ 中执行此操作?

我找到了hmacsha2库,但不确定它们是否是我需要的。