问题标签 [sha]

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 投票
3 回答
1071 浏览

c++ - 如何在 C/C++ 中进行 SSHA1?

如何在 C/C++ 中计算 C 字符串的加盐SHA1 摘要(在我的情况下是明文密码)?

我不想包括一些巨大的图书馆来做到这一点。我只需要一种“简单”的方法来制作盐渍SHA1 摘要。

0 投票
3 回答
3474 浏览

hash - SHA-1 哈希的最大数量是多少?

显然,由于 SHA-1 散列每次产生 40 个字符,因此可能的散列数量是有限的——有人知道确切的数量吗?

0 投票
2 回答
1422 浏览

git - 如何从 git log 输出中获取特定的 SHA

执行以下命令git log --before "Feb 01 2011"会返回指定日期之前的所有提交,包括它们的 SHA . 有任何想法吗?谢谢!

0 投票
1 回答
793 浏览

security - 更改预先存在的数据库上的散列函数

我正在阅读一些关于密码散列的内容。我已经看到 SHA-256 > MD5。这让我开始思考一个应用程序如何处理从一个散列函数到另一个散列函数的变化。如果有人实现了一个使用 MD5 对他们的密码进行哈希处理的应用程序会发生什么。然后他们决定 SHA-256 是要走的路。当然,存储在数据库中的密码哈希值是 MD5 格式的。

将数据库中的数据从一个散列函数迁移到另一个散列函数的过程是什么?

0 投票
2 回答
308 浏览

vb.net - 哈希出错了

我在登录期间使用相同的函数来散列值以进行比较,就像在用户注册时散列密码一样:

我的问题是,当我尝试登录其密码被此函数散列的帐户时,散列值不匹配。我想我跳过了一步或什么的。

这是创建用户帐户的代码:

这里没有包含更多与我的问题无关的检查。

这是我的用户登录:

据我所知,我在这里所做的散列没有区别。

有没有人有任何想法?

0 投票
0 回答
322 浏览

hash - Solr:高效存储 SHA1 哈希

我必须在 Solr 中存储、索引和查找大量 SHA1-Token。

现在我将它们存储为 40-Chars-Hex-strings,例如68ac906495480a3404beee4874ed853a037a7a8f. 我的 Solr 索引中有大约 10,000 多个唯一的 SHA1 令牌。

将压缩的值存储为 20 字节 BinaryField 会更好吗?(索引的一半大小,性能更高......?)

我在“Lucene in action”一书中读到了 Krugle,他只在(压缩的)MD5 字符串的中间存储了一些字符。这会更好地获得最大的搜索性能吗?

0 投票
1 回答
135 浏览

javascript - 将 Ruby SHA 转换为 javascript

我在 ruby​​ 上有这个方法,它将字符串转换为加密的 SHA 代码,我想知道是否有可能使用 javascript 来实现它?事实是我不确切知道这个 SHA 的配置是什么(我相信它是 512 但我不确定,我尝试了一些 javascript 在线工具但我无法获得相同的结果)

也许通过知道上面方法中使用的确切配置是什么,我可以在 javascript 中找到它更容易?

提前致谢


以防万一有人需要该方法将字符串转换为十六进制 UTF-16,这里是:

0 投票
1 回答
15847 浏览

build - 仅使用 RSA 和 AES 构建 openssl

我在一个项目中使用 libcrypto.a (OpenSSL)。默认情况下,所有算法都在 libcrypto.a 下可用。对于这个项目,我只需要 RSA、AES 和 SHA。

如何仅使用这些算法构建 libcrypto.a?

0 投票
4 回答
7010 浏览

java - 如何在java中更快地计算sha256?

我发现在 java 中计算 sha256 很慢。例如,它比 python 慢。我写了两个简单的基准来计算 1GB 零的 sha256。在这两种情况下,结果都是相同且正确的,但是 python 时间是 5653 毫秒,而 java 时间是 8623 毫秒(慢了 53%)。结果每次都相似,这对我来说是一个重要的区别。

如何使java中的计算更快?

基准:

爪哇:

Python:

结果:

java和python的版本:

0 投票
2 回答
746 浏览

c# - 哈希算法的简单查询

从下面列出的链接中阅读文章后:

http://news.ycombinator.com/item?id=910203

我现在正试图证明和理解为什么下面列出的哈希是不安全的,程序员不应该练习。

H(k || m) --> SHA1("密钥" + "name=bob,withdraw=$200")

H(m || k) --> SHA1("name=bob,withdraw=$200" + "secret-key")

正如文章所述,第一个示例完全被致命地破坏了。SHA1(以及 MD5 和许多其他哈希)是共享一种称为 Merkle-Damgaard 的通用设计的机器,这意味着它们以块长度的块处理消息,并使用这些块来置换内部状态。输出 SHA1 是该状态的“最终”内容。但是没有什么可以真正“确定” SHA1 状态。如果您在电线上看到 SHA1 值,您可以继续使用附加数据启动 Merkle-Damgaard 机器。这意味着您可以使用附加到末尾的任意数据来铸造新消息,这些数据看起来是真实的。这种攻击非常容易实施;它需要大约 20 行 Ruby 代码。

第二个例子也坏了,它是这篇博文的主题。如果你在消息之后加上密钥,你就不能继续用数据驱动散列,因为你无法猜测的秘密就在它的末尾。

我在 C# 中编写了一个简单的哈希函数,试图证明作者声称的内容,但不知何故,无论我添加/填充或在消息的后面/前面添加什么,我似乎都无法做到这一点。

有人可以通过提供一个指定的示例来指导我,我可以散列、理解和证明作者在文章中对这两种散列方法的主张。提前感谢您提供的任何帮助。