【问题标题】:can PKCS5_PBKDF2_HMAC hashing function cause an issue with special symbols like < or >?PKCS5_PBKDF2_HMAC 散列函数会导致特殊符号(如 < 或 >)出现问题吗?
【发布时间】:2018-01-25 05:15:55
【问题描述】:

当使用 等特殊符号时,PKCS5_PBKDF2_HMAC 散列函数似乎失败。使用此类字符时,它无法给出正确的哈希值。是不是这个函数被设计成不能使用特殊字符?

【问题讨论】:

  • 为了帮助其他人,您发现的问题是什么?

标签: pbkdf2


【解决方案1】:

这个函数是不是被设计成不能使用特殊字符?

没有。 PBKDF2 是 HMAC 的包装器,它是 XOR 和散列算法的包装器。 PBKDF2 及其依赖项只不过是常规数学运算,并且或多或少在二进制级别上运行。你可以输入任何你想要的十六进制值,它会正常工作。

现在,您的代码可能在调用 PBKDF2 之前的转换中做了一些奇怪的事情,或者您使用的任何软件、中间件和前端都可能有问题。

测试:

  • 打印出您尝试散列的内容以及盐的十六进制编码二进制转换。检查一下。
  • 如果特别是尖括号是个问题,那么在人类输入数据和您的 PBKDF2 函数之间的路径中是否包含 XML 和/或 HTML
  • 我有several independent PBKDF2 implementations at my Github repository,特别是我刚刚升级了OpenSSL library 版本以支持多种输入和输出编码。
    • 针对其中几个实现测试十六进制编码的哈希和十六进制编码的盐。
    • 根据您的代码从头到尾测试上述存储库中的测试向量。
    • 根据尽可能接近裸机 PBKDF2 实现的方式测试上述存储库中的测试向量,并尽可能跳过所有其他代码。

【讨论】:

    猜你喜欢
    • 2016-06-16
    • 2015-12-29
    • 2012-08-21
    • 2014-12-26
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    相关资源
    最近更新 更多