SHA-256是否不敏感?

时间:2012-08-09 21:14:46

标签: php ios sha256

我正在运行一个在应用程序的两侧使用SHA-256的服务 - 一个是服务器端PHP实现,另一个是客户端iOS实现。在两侧使用算法的结果是相同的字母数字字符串,除了所有字母在iOS上大写并且在PHP上小写的情况。它们是相同的字母数字字符串这一事实使我相信SHA-256不区分大小写,但我找不到支持我的假设的任何文档。有人可以给我一些文件来证实吗?

4 个答案:

答案 0 :(得分:20)

如果您指的是十六进制字符串输出,那么是,这是不区分大小写的。它是二进制数据的文本表示。

http://en.wikipedia.org/wiki/Hexadecimal

算法本身绝对区分大小写。

答案 1 :(得分:3)

如果输入的二进制表示在两侧都相同,则哈希值的二进制表示将是相同的。 Hex不区分大小写。

答案 2 :(得分:2)

不错的加密哈希函数不区分大小写,因为它会更容易产生冲突。输出是另一回事。它基本上是一个很大的数字(所以套管不适用),但为了方便起见,它在基数16中给出,即使用字母a到f作为附加数字。十六进制表示法确实不区分大小写,或者至少两个大写和小写变体都是常见的并且被识别。它没关系,也没有改变所代表的数字。

答案 3 :(得分:0)

所有SHA系列都是二进制算法,他们对案例一无所知,所以它们不能不区分大小写。
你可以在一台机器上测试这个,它有两个输出来自不同情况的一个字符串,你可以看到它们提供不同的结果 在你的情况下,我认为如果每件事都没问题,可能iOS在手机中显示大写字符串,但内部传递给你正常(小写)字符串