PHP添加MD5哈希?
我正在使用+符号添加2个MD5哈希值,如下所示:PHP添加MD5哈希?,php,md5,Php,Md5,我正在使用+符号添加2个MD5哈希值,如下所示: md5('string1') + md5('string2') 现在,如果我用字符串做这个,就像这样: 'string1' + 'string2' …PHPp将给我0作为返回值。但是,对于MD5哈希,它总是返回一个数值,我无法确定其来源。它将取决于字符串生成的哈希值。当添加“字符串”值时,PHP的行为(事实上)是将任何前导数字字符视为整数。。。如果没有前导数字,则它将被视为0 所以 用你的数据 md5('string1') = '34b577
md5('string1') + md5('string2')
现在,如果我用字符串做这个,就像这样:
'string1' + 'string2'
…PHPp将给我0作为返回值。但是,对于MD5哈希,它总是返回一个数值,我无法确定其来源。它将取决于字符串生成的哈希值。当添加“字符串”值时,PHP的行为(事实上)是将任何前导数字字符视为整数。。。如果没有前导数字,则它将被视为0 所以 用你的数据
md5('string1') = '34b577be20fbc15477aadb9a08101ff9'
md5('string2') = '91c0c59c8f6fc9aa2dc99a89f2fd0ab5'
给予
34 + 91 => 125
现在为什么要添加哈希值?这将取决于字符串生成的哈希值。当添加“字符串”值时,PHP的行为(事实上)是将任何前导数字字符视为整数。。。如果没有前导数字,则它将被视为0 所以 用你的数据
md5('string1') = '34b577be20fbc15477aadb9a08101ff9'
md5('string2') = '91c0c59c8f6fc9aa2dc99a89f2fd0ab5'
给予
34 + 91 => 125
现在为什么要添加散列值?在PHP中,
+
是数字加法,
是字符串串联
另外,md5(string)
返回一个字符串
因此:
您可能希望在数字上添加散列。然后您需要使用将MD5结果转换为数字。在PHP中,
+
是数字加法,
是字符串串联
另外,md5(string)
返回一个字符串
因此:
您可能希望在数字上添加散列。然后需要使用将MD5结果转换为数字。不能使用
+
添加MD5哈希,就像不能使用+
添加任何其他类型的字符串一样。这种差异是意料之中的,是由于PHP的。相比之下:
'1string' + '2string'
与
如果以数字方式添加MD5得到的结果不同于零,这是因为您添加的特定哈希值碰巧以一个或多个十进制数字开始
添加两个不代表十进制数的字符串是没有正当理由的,所以不要这样做。不能使用
+
添加md5哈希,就像不能使用+
添加任何其他类型的字符串一样。这种差异是意料之中的,是由于PHP的。相比之下:
'1string' + '2string'
与
如果以数字方式添加MD5得到的结果不同于零,这是因为您添加的特定哈希值碰巧以一个或多个十进制数字开始
添加两个不代表十进制数的字符串是没有正当理由的,所以不要这样做。只需添加,md5函数返回字符串值,但md5算法生成十六进制值 还记得PHP支持一些自动转换 这就是为什么php会给出一些值,但您无法检测到该值,因为即使字符串中的单个字符更改也会完全更改生成的MD5哈希
这个问题仍然很有趣。您能告诉我们您通过添加md5散列试图实现什么吗?只是为了添加,md5函数返回字符串值,但md5算法生成六进制值 还记得PHP支持一些自动转换 这就是为什么php会给出一些值,但您无法检测到该值,因为即使字符串中的单个字符更改也会完全更改生成的MD5哈希
这个问题仍然很有趣。你能告诉我们你想通过添加md5散列来实现什么吗?不是我的否决票,但是
hexdec
显然在这里不起作用,因为md5是128位的,这意味着它将转换为浮点,这意味着你将失去精度,这意味着结果不准确。如果我正确解释OP的问题,他不会问如何连接两个MD5哈希。他在问为什么+
运算符返回一个非零整数,而当它与字符串一起使用时通常返回零。这不是我的下一票,但hexdec
显然在这里不起作用,因为MD5是128位,这意味着它将转换为浮点,这意味着你将失去精度,这意味着结果不准确。如果我正确解释OP的问题,他不会问如何连接两个MD5哈希。他问为什么+
操作符返回一个非零整数,而当它与字符串一起使用时通常返回零。+1作为信息,不知道md5创建了一个十六进制。。。关于我们为什么这么做——我们使用+而不是。然后发现我们得到了wierd结果:-)+1的信息,不知道md5创建了hexa。。。关于我们为什么这么做——我们使用+而不是。然后发现我们得到了更为复杂的结果:-)