PKCS5_PBKDF2_HMAC散列函数会导致特殊符号出现问题,例如<或者>?

时间:2018-01-25 05:15:55

标签: pbkdf2

当特殊符号如<时,PKCS5_PBKDF2_HMAC散列函数似乎失败了。或者>使用。使用这些字符时,它无法给出正确的哈希值。是否该功能被设计为不使用特殊字符?

1 个答案:

答案 0 :(得分:0)

  

该功能是否设计为不能使用特殊字符?

没有。 PBKDF2是HMAC的包装器,它是XOR和散列算法的包装器。 PBKDF2及其依赖关系只是常规数学,并且在二进制级别或多或少地运行。您可以提供所需的任何十六进制值,它将正常运行。

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

测试:

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