如何检查字符串是否被哈希到某个位?我想单元测试我的方法(使用SHA512),我想写一个测试来检查返回的字符串是否是512位散列。
答案 0 :(得分:2)
您无法确定字符串是否仅使用字符串本身进行加密。可以输入类似于SHA512散列函数结果的数据,但不进行实际散列。
如果您知道它是经过哈希处理并且您想知道是否使用了SHA512,那么您唯一可以验证的是字符串是否为512位长,但是它不会告诉您它是否为SHA512。
答案 1 :(得分:2)
如果它是单向散列(你没有声明它是,但你使用SHA512暗示它),那么它就无法解密。真的,测试它的唯一方法是:
重复各种输入,直到您满意为止。
答案 2 :(得分:1)
请在我之后重复:哈希不是加密。 哈希算法的输入数据丢失,无法恢复。
SHA-512 has an output 512 bits long,所以有人向你展示512位并说它是SHA-512算法的输出可能是正确的。据我所知,SHA算法的输出没有容易识别的模式,所以他们可能只是向你展示512位纯随机噪声。
您能解释为什么要确定用于生成特定哈希的算法吗?