cryptography - PBKDF2-HMAC-SHA2 测试向量

标签 cryptography hmac sha2 pbkdf2

RFC6070 中有 PBKDF2-HMAC-SHA1 的测试向量. RFC4231 中有 HMAC-SHA2 的测试向量.
但到目前为止,我还没有在任何地方找到 PBKDF2-HMAC-SHA2 的测试向量。
我对 SHA256 最感兴趣,所以我将发布一些我用我的实现计算的向量。如果有人可以验证/确认他们,或者贡献他们自己的,我会很高兴。

最佳答案

作为 RFC-7914 的一部分(scrypt 规范)为带有 HMAC-SHA-256 的 PBKDF2 提供了测试向量(因为 scrypt 在内部使用 PBKDF2)。
他们来了:


   PBKDF2-HMAC-SHA-256 (P="passwd", S="salt",
                       c=1, dkLen=64) =
   55 ac 04 6e 56 e3 08 9f ec 16 91 c2 25 44 b6 05
   f9 41 85 21 6d de 04 65 e6 8b 9d 57 c2 0d ac bc
   49 ca 9c cc f1 79 b6 45 99 16 64 b3 9d 77 ef 31
   7c 71 b8 45 b1 e3 0b d5 09 11 20 41 d3 a1 97 83

   PBKDF2-HMAC-SHA-256 (P="Password", S="NaCl",
                        c=80000, dkLen=64) =
   4d dc d8 f6 0b 98 be 21 83 0c ee 5e f2 27 01 f9
   64 1a 44 18 d0 4c 04 14 ae ff 08 87 6b 34 ab 56
   a1 d4 25 a1 22 58 33 54 9a db 84 1b 51 c9 b3 17
   6a 27 2b de bb a1 d0 78 47 8f 62 b3 97 f3 3c 8d

有趣的是,dkLen越过 32 (SHA-256 block 的大小),因此它确实测试了中间散列 block 的串联是否有效。

关于cryptography - PBKDF2-HMAC-SHA2 测试向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5130513/

相关文章:

java - Java 中的 PemReader

java - 为什么 java.security.NoSuchProviderException 没有这样的提供者 : BC?

security - 数字签名与 HMAC 与通过 DH 的 key

c# - HttpContent.ReadAsByteArrayAsync() 在 DelegatingHandler 内部失败且没有错误

ssl - 如何在没有请求的情况下安装或使用证书

c - sha2 256 的 C 实现中的错误哈希输出

javascript - ECSDA用Python签名,用JS验证

Java,解码AES-256时出错

Python 3 哈希 HMAC-SHA512

MySQL SHA2 函数似乎不起作用