问题标签 [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 回答
11641 浏览

openssl - openssl hmac 使用 aes-256-cbc

我正在尝试使用opensslLinux 上的命令行程序获取文件的 AES HMAC。我一直在查看手册页,但不太清楚如何成功地制作 HMAC。enc我可以使用命令加密文件,openssl但是我似乎无法创建 HMAC。加密如下所示:

任何建议或教程都会很棒

0 投票
2 回答
1691 浏览

c++ - OpenSSL HMAC 函数中的意外复杂性

SSL 文档分析

这个问题与 OpenSSL 中 HMAC 例程的使用有关。

由于 Openssl 文档在某些领域有点薄弱,分析表明使用:

这里,显示我的库运行时 40%用于在幕后创建和删除 HMAC_CTX 。

还有两个附加函数可以显式地创建和销毁HMAC_CTX

HMAC_CTX_init() 在第一次使用之前初始化一个 HMAC_CTX。它必须被调用。

HMAC_CTX_cleanup() 从 HMAC_CTX 中擦除密钥和其他数据并释放任何相关资源。当不再需要 HMAC_CTX 时必须调用它。

这两个函数调用的前缀是:

如果消息没有完全存储在内存中,可以使用以下函数

我的数据完全适合内存,所以我选择了 HMAC 函数——其签名如上所示。

如手册页所述,通过使用以下两个函数来使用上下文:

HMAC_Update() 可以使用要验证的消息块(数据中的 len 个字节)重复调用。

HMAC_Final() 将消息验证码放在 md 中,md 中必须有空间用于散列函数输出。


适用范围

我的应用程序生成了一个真实的(HMAC,也使用了 nonce)、CBC-BF 加密的协议缓冲区字符串。该代码将与各种网络服务器和框架接口,Windows / Linux 作为操作系统,nginx、Apache 和 IIS 作为网络服务器以及 Python / .NET 和 C++ 网络服务器过滤器。

上面的描述应该阐明库需要是线程安全的,并且可能具有可恢复的处理状态——即,共享操作系统线程的轻量级线程(这可能会使线程本地内存不可用)。


问题

如何以(1)线程安全/(2)可恢复状态方式消除每次调用的 40% 开销?(2) 是可选的,因为我一次性拥有了所有源数据,并且可以确保在不放弃对线程中间摘要创建的控制的情况下就地创建摘要。所以,

(1) 可能可以使用线程本地内存来完成——但我如何重用 CTX 的?HMAC_final ()调用是否使 CTX 可重用?

(2) 可选:在这种情况下,我必须创建一个 CTX 池。

(3) HMAC 函数是如何做到这一点的?它会在函数调用范围内创建一个 CTX 并销毁它吗?

伪代码和评论将很有用。

0 投票
1 回答
1720 浏览

c# - 互操作:Java 和 dotNet 中的 HmacSHA1

在一个应用程序中,我们使用以下方法在 java 中计算 SHA1Hmac:

后来,在 C# 中验证了 hmac - 在 SmartCard 上 - 使用:

然而,结果却不尽相同。我是否忽略了一些重要的事情?

输入似乎是相同的。这里有一些示例输入:

我不介意在两个平台上实现我自己的 hmacsha1,但是使用已经存在的......

谢谢!

0 投票
1 回答
76 浏览

django - 从 Django 获取原始查询

我想从 Django 获取原始查询(格式与发送的完全相同)。

目前,django 向我发送了一个查询字典对象,其中如果我执行 querydict.urlencode(),我会返回查询,但格式与发送的格式不同,因为字典会破坏位置。

对于 GET,我们可以使用 request.get_full_path()。

我还没有找到 POST 的机制。

我需要它,因为我正在做一个 HMAC,对于 HMAC,字段的精确定位很重要。

问候

ķ

0 投票
5 回答
87284 浏览

php - PHP:如何生成字符串的 HmacSHA256 签名

有没有办法在 php 中创建字符串的 HmacSHA256 签名?

0 投票
3 回答
5830 浏览

coldfusion - HMAC SHA1 冷融合

请帮忙!我一直在拔头发。:)

我有一个需要 HMAC SHA1 进行身份验证的站点。它目前适用于另一种语言,但现在我需要将其移至 ColdFusion。对于我的生活,我无法让字符串匹配。任何帮助将不胜感激。

数据:https%3A%2F%2Fwww%2Etestwebsite%2Ecom%3Fid%3D5447
关键: 265D5C01D1B4C8FA28DC55C113B4D21005BB2B348859F674977B24E0F37C81B05FAE85FB75EA9CF53ABB9A174C59D98C7A61E2985026D2AA70AE4452A6E3F2F9

正确答案:WJd%2BKxmFxGWdbw4xQJZXd3%2FHkFQ%3d
我的答案:knIVr6wIt6%2Fl7mBJPTTbwQoTIb8%3d

两者都是 Base64 编码,然后是 URL 编码。

0 投票
7 回答
1939 浏览

security - 双重哈希密码 - 客户端和服务器

嘿,首先,让我说,我不是在询问 md5(md5(... 之类的东西,已经有关于它的主题。

我的问题是这样的:

我们允许我们的客户在本地存储他们的密码。自然,我们不希望它们存储在计划文本中,因此我们在存储和/或发送之前在本地对它们进行 hmac 处理。现在,这很好,但如果这就是我们所做的一切,那么服务器将拥有存储的 hmac,并且由于客户端只需要发送 hmac,而不是纯文本密码,攻击者可以使用来自服务器的存储哈希访问任何人的帐户(当然,在灾难性的情况下,有人会获得对数据库的这种访问权限)。

因此,我们的想法是通过 hmac 对客户端上的密码进行一次编码,将其发送到服务器,然后通过 hmac 对其进行第二次编码,并将其与存储的两次 hmac 化密码进行匹配。这将确保:

  • 客户端可以将密码存储在本地,而无需将其存储为纯文本
  • 客户端可以发送密码而不必(过多)担心其他网络方
  • 服务器可以存储密码,而不必担心有人从服务器窃取密码并使用它进行登录。

自然,所有其他事情(强密码、双盐等)也适用,但与问题并不真正相关。

实际的问题是:这听起来像一个可靠的安全设计吗?我们是否忽略了以这种方式做事的任何缺陷?可能有这样的安全模式吗?

附录:我们不想在客户端以纯文本形式本地存储密码的原因是因为令人遗憾的是,许多人仍然对多个服务使用相同的密码,因此获得“真实”密码会更大用户的安全漏洞,而不是让他的哈希被盗。

0 投票
3 回答
3246 浏览

c# - 为什么 ComputeHash 没有确定性地行动?

我遇到了一个有趣的问题..似乎“HMACSHA256”哈希的 ComputeHash() 的行为不是确定性的..如果我使用 HashAlgorithm.Create("HMACSHA256") 创建两个 HashAlgorithm 实例.. 并运行 ComputeHash,我得到了两个不同的结果。下面是一个展示这种行为的示例静态类。

我还尝试使调用非静态(实际上它开始时是非静态的,并且我有双重、三重和四重检查我的输入数组..每次通话都完全相同..我什至在 immidiate像这样的窗口:

并通过方法中的断点在 immidiates 窗口中运行两次返回两个不同的哈希值。

我知道哈希应该是确定性的.. 那么给出了什么?在调试器中运行有什么问题吗?还是有其他想法?真的,现在这只是两个奇怪的词:-P ..

谢谢乔什

0 投票
2 回答
56303 浏览

java - 如何在 Java 中生成与 Python 示例等效的 HMAC?

我正在考虑实现一个通过Java 中的Oauth 获得 Twitter 授权的应用程序。第一步是获取请求令牌。这是应用引擎的Python 示例

为了测试我的代码,我正在运行 Python 并使用 Java 检查输出。以下是 Python 生成基于哈希的消息验证码 (HMAC) 的示例:

输出:

如何在 Java 中复制这个示例?

我在 Java中看到了HMAC 的一个例子:

它使用javax.crypto.Mac,一切都很好。但是,SecretKey构造函数需要字节和算法。

Python示例中的算法是什么?没有算法如何创建 Java 密钥?

0 投票
3 回答
6876 浏览

cryptography - HMAC 安全性 - 基于 SHA-1 的 HMAC 的安全性是否会受到 SHA-1 冲突攻击的影响?

基于 SHA-1 的 HMAC 的安全性是否受到 SHA-1 冲突攻击的影响?