问题标签 [hmacsha1]

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 回答
571 浏览

sha1 - 是否可以在 javacard 框架 2.2.1 版本中使用“Signature”类中的“ALG_HMAC_SHA1”方法?

我想使用 javacard.security.Signature 类中的 ALG_HMAC_SHA1 方法。但是我的 javacard 框架版本是 2.2.1,所以 Signature 类不包括这个版本的这个方法。它在2.2.2之后包含了这个方法。是否可以在不升级框架版本的情况下使用此方法?

0 投票
1 回答
150 浏览

java - Java 上的端口 Python hmac 产生不同的结果

我不知道 Python(尝试在 Java 上移植这个 Python 脚本(Google Music Api(非官方)):

爪哇版:

为什么结果不一样?请帮助(

0 投票
1 回答
61 浏览

encryption - 如何判断一个字节数组是否包含散列数据

是否可以确定字节数组是否包含使用 PBKDF2WithHmacSHA1 散列的数据?有没有可以提供帮助的模式?

0 投票
1 回答
5127 浏览

c# - 尝试使用 C#.Net 编写 HMAC-SHA256

我尝试将 HMAC-SHA256 算法编码为函数

HMAC (K,m) = H((K ⊕ opad) ∥ H((K ⊕ ipad) ∥ m))

在哪里

  • H 是一个密码散列函数,
  • K 是一个秘密密钥,在散列函数的输入块大小上用额外的零填充,或者如果原始密钥长于该块大小,则为原始密钥的散列,
  • m 是要验证的消息,
  • ∥ 表示连接,
  • ⊕ 表示异或(XOR),
  • opad 是外部填充(0x5c5c5c…5c5c,一个块长的十六进制常数),
  • ipad 是内部填充(0x363636…3636,一个块长的十六进制常量)。

这是我的代码

但是当我尝试测试此代码时,结果不符合标准互联网网站上的标准 HMAC-SHA256 散列

0 投票
1 回答
358 浏览

c# - 在 ruby​​ 中生成 HMACSHA1

我有以下代码片段在 C# 中生成 HMACSHA1 签名。下面的代码是什么

现在我想把它翻译成红宝石,比如:

但是,对于相同的输入,结果并不相等。他们在内部使用不同的哈希算法吗?

谢谢

0 投票
1 回答
434 浏览

python - hmacsha1 在 vb.net 和 python 之间输出不同的十六进制字符串

我在 vb.net 中使用 HMACSHA1 在 webrequest 中进行消息身份验证。从服务器收到“(403) Forbidden”消息后,我决定查看我在 VB 中的签名计算是否与给定的示例 python 代码中的计算相匹配。十六进制字符串非常相似,但并不完全相同。请注意 py 签名中的两个额外的 0,但不在下面 * 指示的 vb 中。我假设 py 示例代码很好并且返回正确的输出,所以让 vb 匹配可能会解决我的问题,那么差异是什么?

这是 py 代码,基于 ( http://apiaxle.com/docs/signing-requests/ ) 的伪代码:

这是vb代码:

0 投票
1 回答
1190 浏览

python - VBA 中的 HMAC-SHA1 URL 加密产生不正确的输出

对于 Google Maps Business API 查询,我需要使用 HMAC-SHA1 对每个查询进行数字签名。我们使用带有 VBA 宏的 Excel 文件来发送查询并解析输出,所以我想在 VBA 中创建签名。我找到了这个问题 + 答案:Base64 HMAC SHA1 String in VBA
但是,当查询发送到 Google API 时,此代码的字符串签名无效。

Google 提供了一些示例脚本。我使用与上面测试 VBA 代码相同的输入测试了Python 示例脚本,并且 Python 代码确实返回了有效签名。因此,提供的 VBA 代码似乎没有构造正确的 HMAC-SHA1 签名,但我找不到问题(我没有加密经验,只有基本的 VBA 知识)。

我创建了一个 HMAC-SHA1 密钥用于测试目的:1412SxPev45oMMRQSXazwQp789yM=
当使用“ abc”作为字符串输入运行时,我得到以下返回:

VBA 代码:Fsu0z3i6Ma5HCrP3eXucrdssJLc=
Python 代码:IFxkS7B_ePtZrvU8sGmiaipTHio=

有谁知道如何在 VBA 中计算正确的 HMAC-SHA1,它等于 Python 输出?

编辑 03/04/2014:
根据 Alex K. 的建议,我确保使用来自的代码将 SharedSecretKey 解码为 Base64http://thydzik.com。我将该函数添加DecodeBase64到下面的 VBA 代码中。
由于这个输出是正确的,但还不是 URL 安全的(因此与 Python 输出不同),我使用 VBAReplace()函数替换+with-/with_
这些解决方案一起产生正确的输出,这被 Google 服务器接受。

使用的 VBA 脚本:

添加了在 Base64 中解码的代码:

使用的 Python 脚本:

0 投票
0 回答
208 浏览

java - Java - PBKDF2WithHmacSHA1 的高效(本机?)版本

我正在使用 PBKDF2WithHmacSHA1 来散列密码。(可能听起来很奇怪,但这不是本次讨论的一部分)。

问题:java的实现太慢了。在我的机器上 2000 次迭代大约需要 2 秒。openssl 的本机实现需要相同的输入 0.05 秒。虽然这不是我想要的安全性(因为 c 太快了),但它太慢了(我不能超过 2000 轮而不惹恼用户,因为散列是在客户端完成的)。

有人可以给我一个建议或在图书馆戳我吗?

0 投票
1 回答
6839 浏览

php - PHP 卷曲 HMAC-SHA1

在这方面需要帮助....我需要从 URL 的 API 调用中获取 json 数据。它说调用需要..

  1. 内容类型:应用程序/x-www-form-urlencoded
  2. HTTP 标头:密钥 ---> APIKEY
  3. HTTP HEADERS : sig ---> 带有 SECRET KEY 的 POST 数据的 HMAC-SHA1 签名
  4. POST PARAMETER: timestamp ----> Current Unix Timestamp

我这样做正确吗?但是如何实现上面的第3点???

一直在为此挠头。请帮助我这个 PHP 新手。

0 投票
0 回答
275 浏览

c# - 从 C# 代码计算 API 的 PHP HMAC SHA1 密钥

问题

我正在尝试在 PHP 中复制以下 C# 代码。这是一个 API 的示例代码,我需要使用 PHP5 进行交互。

我从中得到的是hmac_hash('sha1','/v2/mode/2/line/787/stops-for-line?devid=2','/v2/mode/2/line/787/stops-for-line?devid=2')需要输出D5474F344CDAA7B92F2253169F6C1D66C1A15001

尝试的解决方案

通读代码后,我找不到任何可能暗示非标准哈希例程的明显内容,因此我采用了以下方法:

但是,这给出1fd3ac2ec7fe0ea39d7d5ef44a23b89aa7974b41了哈希值,这显然是不正确的。我读过 base64 解码密钥并对生成的哈希进行编码有时可能是诀窍,但遗憾的是事实并非如此。您可以指出我的任何资源或代码示例将不胜感激。