问题标签 [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 投票
3 回答
843 浏览

.net - 是否为长度为零的消息定义了 HMACSHA1?

我有一个边缘案例。我正在构建读取由商业闭源工具生成的二进制数据文件的代码。有关数据格式的信息在文档中指定。

对于数据完整性检查,供应商的规范要求使用基于 SHA1的HMAC ,使用根据RFC2898的密码派生的密钥。许多编程环境都有一个名为 HMACSHA1 的类来生成这些哈希值。

对于非零长度的数据流,我可以成功计算出Hash,并且我的代码中的计算与厂商的实现一致。换句话说,我的代码可以读取和验证供应商编写的文件,反之亦然。

但是,当数据流的长度为零时,供应商的工具会发出一个不全为零的哈希。我不知道它来自哪里,如果没有消息通过 HMACSHA1 运行。

对于 HMACSHA1 或任何 HMAC,是否为“空消息”的边缘情况定义了 MAC?

我正在使用 .NET 和System.Security.Cryptography.HMACSHA1类,尽管我相信我的问题与平台无关。


有一个特定于平台的位:当我尝试在该类型的实例上获取 Hash 属性时,如果我没有通过该实例运行任何数据,我会得到

这对我来说一点也不奇怪,因为没有什么可以散列的。

任何提示?

0 投票
3 回答
2734 浏览

actionscript - ActionScript 的 HMAC-SHA-512 实现

如标题所述,我想找到为 ActionScript 编写的 HMAC-SHA-512 的实现。我能够找到一个为 HMAC-SHA-256 提供其他功能的库,但是,我正在寻找 HMAC-SHA-512。

谢谢

编辑:

或者,由于 actionscript 和 javascript 具有相同的来源,有人可以将此 javascript 版本移植到 actionscript 中吗?

http://pajhome.org.uk/crypt/md5/sha512.html

编辑2:

我已经将代码从 javascript 移植到了 actionscript。该代码可以在这个问题 Porting SHA-512 Javascript implementation to Actionscript的答案之一中找到

0 投票
2 回答
5627 浏览

php - Ruby 和 PHP HMAC 不同意

我正在尝试在 Ruby 中创建一个 HMAC,然后在 PHP 中对其进行验证。

红宝石:

PHP:

对于 Ruby,我得到: 20e3f261b762e8371decdf6f42a5892b530254e666508e885c708c5b0bfc03d3

对于 PHP,我得到:e5f6995ba1496b2fb144329b2d1b3b23c8fa3211486e57bfaec5d993a1da9d15

我和一些同事完全不知所措,任何帮助将不胜感激。

0 投票
6 回答
6151 浏览

ruby-on-rails - 如何在 Ruby 中使用 HMAC 模块创建 MD5 哈希?

使用 Google + Bing 并没有回答应该是一个简单的问题:

你应该如何使用 Ruby 中的 HMAC 模块来创建一个带有 MD5 的 HMAC(它使用一个秘密)?

HMAC 文档看起来非常薄。

谢谢!

0 投票
7 回答
42794 浏览

java - java相当于php的hmac-SHA1

我正在寻找与此 php 调用等效的 java:

我试过这个,使用java.crypto.Mac,但两者不同意:

key = "secret" 和 test = "test" 的输​​出似乎不匹配。

0 投票
1 回答
976 浏览

.net - 在 .NET 中为 XMLSerialized 对象生成哈希签名 (HMAC) 的最佳方法?

我需要为使用 .NET 框架中的 XMLSerializer 序列化的对象生成 HMAC。每个对象都将包含一个名为“HMAC”的属性,该属性将包含对象本身值的哈希值,但不包括“HMAC”字段。我发现这个问题提到了 CLR 中的内置解决方案,但没有详细说明它的确切名称或我如何使用它?

示例对象看起来像这样:

HMAC 属性需要设置为整个对象的序列化,不包括 HMAC 对象本身。我的第一个想法是设置某种两遍序列化,其中包括:

  1. 在第一次通过时将 xmlignore 属性设置为 HMAC 对象
  2. 序列化整个对象
  3. 散列结果,并设置 HMAC 属性的值
  4. 重新序列化整个事情,准备传输。

这是最好的方法吗?以前有没有人做过这样的事情,你发现什么是最干净的方法???

0 投票
2 回答
3270 浏览

php - HMAC - 在 Objective-C 中 PHP 算法的实现

我必须在我的 iPhone 应用程序中实现 HMAC MD5。算法的PHP版本(实现服务器端进行验证)在这里,我不能修改它(它是一个API)

我发现了几个objective-C实现:

没有返回相同的结果(PHP!= ObjC)。

我使用 ObjC 实现将摘要长度更改为 32(结果与 PHP 实现的长度相同),密钥长度为 64(对应于第一个 str_pad),但结果总是不同的。

有人可以告诉我如何在 Objective-C 中获得相同的结果吗?

编辑:由于 ObjC 中的 2 个实现返回相同的结果,因此这里只有一个有用..

0 投票
1 回答
483 浏览

php - 这两行 PHP 有何不同?

假设我们在数据库中有一个盐,并且已经像这样生成

$salt = time();

这两条线有什么区别。

它们不会产生相同的输出。第一个,该hash函数需要 2 个参数,而hash_hmac需要 3 个参数。因此,您会认为我们可以通过使用$salt单独的(以实现第三个参数)而不是像我们在第 2 行中那样将其与密码 ( $password . $salt) 连接来获得第三个额外参数。但这并不是那么简单,两个结果是不同的。为什么?这里到底发生了什么?

0 投票
2 回答
4145 浏览

c# - ruby 中的 hmac-sha1 与 C# HMACSHA1 不同

我正在尝试从ankoder.com测试 API,并且在身份验证令牌的摘要计算上遇到问题。当我尝试从 C# 调用时,示例是 ruby​​。当我比较 HMAC-SHA1 中的摘要结果时,我遇到了密钥结果的问题。

为了方便测试,代码如下:

这给了我结果:“X/0EngsTYf7L8e7LvoihTMLetlM=\n”如果我在 C# 中尝试以下内容:

salt 结果是一样的,但是密码结果是不同的——C# 给了我:

QLC68XjQlEBurwbVwr7euUfHW/k=

两者都生成盐:f5cab5092f9271d43d2e

知道发生了什么吗?

0 投票
1 回答
1878 浏览

apache - 什么是 auth_tkt cookie 格式?

Apache 模块auth_tkt创建可以加密验证的身份验证 cookie,因此 Web 服务器可以在REMOTE_USER不咨询数据库的情况下生成。auth_tktcookie的规格是什么?