问题标签 [hmac]

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 投票
2 回答
873 浏览

c# - 在 .Net 中生成可打印的 HMAC 共享密钥

我正在使用 HMACSHA512 使用共享密钥对数据进行哈希处理。由于密钥是共享的,我希望它是所有可打印的字符,以便于传输。我想知道生成这些密钥的最佳方法是什么。

我目前正在使用 RNGCryptoServiceProvider 的 GetBytes() 方法来生成密钥,但它返回的字节数组包含不可打印的字符。所以我想知道对结果进行base64编码是否安全,或者这是否会过多地侵蚀随机性并使事情变得不那么安全?如果这不是一个好方法,你能推荐一个吗?

我确实明白,通过将键限制为可打印字符,我限制了键空间的整体宽度(即:去掉 8 位中的 1 位),但我对此表示满意。

0 投票
1 回答
2011 浏览

iphone - PBKDF2-HMAC-SHA256 Objective-C 实现

有人可以指出我在 Objective-C 中使用 HMAC-SHA256 生成密钥的 PBKDF2 实现。这是我稍后将用于 AES-CBC-Pad 加密的密钥生成过程的一部分。

提前致谢

0 投票
1 回答
22049 浏览

php - 如何让 PHP 创建像 Objective-C 这样的 HMAC-SHA1 字符串?

我正在尝试使用 PHP 和 Objective-C 实现身份验证解决方案。两种语言都使用相同的密钥和相同的秘密创建自己的 HMAC-SHA1 编码字符串。

显然,他们的做法似乎有所不同。

在 Objective-C 方面,我使用 OAuthCustomer 作为签名类,它产生正确的编码字符串:

在 PHP 方面,我使用了带有 base64 编码的内置函数 hash_hmac('sha1',...) ,它产生了这个:

然后我尝试使用另一个函数(在此处提到),这会产生 base64 编码:

我完全不知道如何解决这个问题,我什至不知道为什么会这样。

多谢帮助,

保罗

0 投票
3 回答
3033 浏览

php - 使用 HMAC+nonce 的 PHP 密码存储 - nonce 随机性重要吗?

几年前,我在 stackoverflow 上询问了如何使 PHP 密码存储安全。主要答案建议使用以下散列算法:

答案建议使用随机随机数。与简单的唯一随机数相比,随机随机数有什么优势吗?

例如,每个用户都可以拥有自己不变的 ID。但是,让我们假设用户 ID 是顺序的(使用 MySQL 的自动增量功能构建),因此不是随机的。用户 ID 是一个好的随机数还是随机性很重要?

现在,每个用户都可以选择一个用户名。每个用户都有自己不变的用户名,两个不同的用户不能有相同的用户名。用户名仍然不是随机的,但它们也不是连续的。用户名作为随机数是否足够好?会比使用用户 ID 更好吗?

0 投票
2 回答
3137 浏览

php - RFC 2104 HMAC-SHA1 的最佳实现

RFC 2104 HMAC-SHA1 alg 的最佳实现是什么?在 PHP 中?我已经阅读了http://us2.php.net/manual/en/function.hash-hmac.php但是当我尝试它们时,我得到了
不同的结果。
谢谢

0 投票
5 回答
9995 浏览

algorithm - 您可以截断多少 SHA1 哈希并合理确定拥有唯一 ID?

我正在制作一个存储文档的应用程序,并根据包括时间戳在内的一些内容的 SHA1 摘要为每个文档提供一个 UID。摘要有很多字符,我想让用户通过使用完整摘要的前 x 个字符来识别文档。如果文档数量可能在 10K - 100K 左右,那么 x 有什么好的价值?

0 投票
3 回答
42081 浏览

python - 带有 hashlib sha1 的 python 加密基础知识

我正在努力完全理解加密的工作原理和编码方式,尤其是使用 python。我只是想了解基础知识并以最简单的形式创建代码。

我将在两个不同的站点之间传递用户 ID,但显然我需要使用私钥对其进行加密,以便 Website2 知道它来自 Website1。这似乎是我的代码: http://docs.python.org/library/hashlib.html#module-hashlib,但它没有很好的例子(或者我可能在错误的地方)。

我遇到的问题是完全理解如何编码和解码。

因此,假设每个网站都知道的共享私钥是:

我希望 Website1 将以下用户 ID 传递给 Website2:

Website1 如何以可以通过 HTTP 标头发送加密的方式使用私钥加密我的 userID,然后让 Website2 解密并能够使用共享私钥读取 userID?

对于提出这样一个基本问题,我深表歉意,但我不明白应该如何做到这一点。谢谢。

0 投票
2 回答
325 浏览

wcf - 在 WCF 中验证调用方/服务器

我的场景:

  • 许多 WCF 客户端位于我无法控制的环境中
  • 服务器要么是我的,要么在我无法控制的环境中

所以最坏的情况是客户端和服务器不在我的控制范围内。更具体地说,我可能假设托管此代码的人可能会尝试恶意冒充服务器或客户端(服务器更有可能)。但是,客户端需要验证服务器是我的代码,服务器需要验证客户端是我的代码。我已经看过所有使用证书的建议;但是,考虑到我的情况,这是一个选择吗?

我考虑过的一种方法是编写 IClientMessageInspector 和 IDispatchMessageInspector 来设置和验证双方的自定义 SOAP 标头。我将根据源代码中包含的密钥创建一个 HMAC 签名(假设我有办法将其隐藏),然后根据消息正文验证摘要。

我觉得这行得通;但是,我觉得这里可能缺少一些开箱即用的东西。我很接近,偏离轨道了吗?感谢您的任何指导!

0 投票
3 回答
29339 浏览

security - HMAC 与简单的 MD5 哈希

谁能指出使用的好处HMАC是什么?

例如,如果我有一个 textT和一个 key K,我可以使用任一HMAC-MD5算法或Md5(T + K)获取签名。

0 投票
4 回答
11922 浏览

cryptography - PBKDF2-HMAC-SHA2 测试向量

RFC6070中有 PBKDF2-HMAC-SHA1 的测试向量。RFC4231中有 HMAC-SHA2 的测试向量。

但到目前为止,我还没有在任何地方找到 PBKDF2-HMAC-SHA2 的测试向量。

我对 SHA256 最感兴趣,所以我将发布一些我用我的实现计算的向量。如果有人可以验证/确认他们,或者贡献他们自己的,我会很高兴。