问题标签 [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.
c# - 在 .Net 中生成可打印的 HMAC 共享密钥
我正在使用 HMACSHA512 使用共享密钥对数据进行哈希处理。由于密钥是共享的,我希望它是所有可打印的字符,以便于传输。我想知道生成这些密钥的最佳方法是什么。
我目前正在使用 RNGCryptoServiceProvider 的 GetBytes() 方法来生成密钥,但它返回的字节数组包含不可打印的字符。所以我想知道对结果进行base64编码是否安全,或者这是否会过多地侵蚀随机性并使事情变得不那么安全?如果这不是一个好方法,你能推荐一个吗?
我确实明白,通过将键限制为可打印字符,我限制了键空间的整体宽度(即:去掉 8 位中的 1 位),但我对此表示满意。
iphone - PBKDF2-HMAC-SHA256 Objective-C 实现
有人可以指出我在 Objective-C 中使用 HMAC-SHA256 生成密钥的 PBKDF2 实现。这是我稍后将用于 AES-CBC-Pad 加密的密钥生成过程的一部分。
提前致谢
php - 如何让 PHP 创建像 Objective-C 这样的 HMAC-SHA1 字符串?
我正在尝试使用 PHP 和 Objective-C 实现身份验证解决方案。两种语言都使用相同的密钥和相同的秘密创建自己的 HMAC-SHA1 编码字符串。
显然,他们的做法似乎有所不同。
在 Objective-C 方面,我使用 OAuthCustomer 作为签名类,它产生正确的编码字符串:
在 PHP 方面,我使用了带有 base64 编码的内置函数 hash_hmac('sha1',...) ,它产生了这个:
然后我尝试使用另一个函数(在此处提到),这会产生 base64 编码:
我完全不知道如何解决这个问题,我什至不知道为什么会这样。
多谢帮助,
保罗
php - 使用 HMAC+nonce 的 PHP 密码存储 - nonce 随机性重要吗?
几年前,我在 stackoverflow 上询问了如何使 PHP 密码存储安全。主要答案建议使用以下散列算法:
答案建议使用随机随机数。与简单的唯一随机数相比,随机随机数有什么优势吗?
例如,每个用户都可以拥有自己不变的 ID。但是,让我们假设用户 ID 是顺序的(使用 MySQL 的自动增量功能构建),因此不是随机的。用户 ID 是一个好的随机数还是随机性很重要?
现在,每个用户都可以选择一个用户名。每个用户都有自己不变的用户名,两个不同的用户不能有相同的用户名。用户名仍然不是随机的,但它们也不是连续的。用户名作为随机数是否足够好?会比使用用户 ID 更好吗?
php - RFC 2104 HMAC-SHA1 的最佳实现
RFC 2104 HMAC-SHA1 alg 的最佳实现是什么?在 PHP 中?我已经阅读了http://us2.php.net/manual/en/function.hash-hmac.php但是当我尝试它们时,我得到了
不同的结果。
谢谢
algorithm - 您可以截断多少 SHA1 哈希并合理确定拥有唯一 ID?
我正在制作一个存储文档的应用程序,并根据包括时间戳在内的一些内容的 SHA1 摘要为每个文档提供一个 UID。摘要有很多字符,我想让用户通过使用完整摘要的前 x 个字符来识别文档。如果文档数量可能在 10K - 100K 左右,那么 x 有什么好的价值?
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?
对于提出这样一个基本问题,我深表歉意,但我不明白应该如何做到这一点。谢谢。
wcf - 在 WCF 中验证调用方/服务器
我的场景:
- 许多 WCF 客户端位于我无法控制的环境中
- 服务器要么是我的,要么在我无法控制的环境中
所以最坏的情况是客户端和服务器不在我的控制范围内。更具体地说,我可能假设托管此代码的人可能会尝试恶意冒充服务器或客户端(服务器更有可能)。但是,客户端需要验证服务器是我的代码,服务器需要验证客户端是我的代码。我已经看过所有使用证书的建议;但是,考虑到我的情况,这是一个选择吗?
我考虑过的一种方法是编写 IClientMessageInspector 和 IDispatchMessageInspector 来设置和验证双方的自定义 SOAP 标头。我将根据源代码中包含的密钥创建一个 HMAC 签名(假设我有办法将其隐藏),然后根据消息正文验证摘要。
我觉得这行得通;但是,我觉得这里可能缺少一些开箱即用的东西。我很接近,偏离轨道了吗?感谢您的任何指导!
security - HMAC 与简单的 MD5 哈希
谁能指出使用的好处HMАC
是什么?
例如,如果我有一个 textT
和一个 key K
,我可以使用任一HMAC-MD5
算法或Md5(T + K)
获取签名。