首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP将MD5散列相加?

PHP将MD5散列相加?
EN

Stack Overflow用户
提问于 2012-03-28 07:56:06
回答 4查看 630关注 0票数 0

我使用+符号来加2 MD5散列(),如下所示:

代码语言:javascript
复制
md5('string1') + md5('string2')

现在,如果我使用字符串执行,如下所示:

代码语言:javascript
复制
'string1' + 'string2'

...PHPp将给我0作为返回值。但是,对于MD5散列,它总是返回一个数值,我无法确定它的任何来源。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-03-28 07:58:49

它将取决于字符串生成的散列值。当添加"string“值时,PHP的行为(它是有据可查)是接受任何前导数字字符,并将它们视为整数.如果没有前导数字,那么它将被视为0。

所以

代码语言:javascript
复制
"1st String" + "2nd String" => 1 + 2 => 3

用你的数据

代码语言:javascript
复制
md5('string1') = '34b577be20fbc15477aadb9a08101ff9'
md5('string2') = '91c0c59c8f6fc9aa2dc99a89f2fd0ab5'

给予

代码语言:javascript
复制
34 + 91 => 125

现在,为什么要添加哈希值?

票数 5
EN

Stack Overflow用户

发布于 2012-03-28 08:19:45

md5函数只返回字符串值,而md5算法则生成十六进制值。

还记得PHP支持一些自动转换。

这就是为什么php会给出一些值,但您无法检测到该值,因为即使字符串中的单个字符发生了完全更改,也会生成MD5哈希。

问题仍然很有趣。你能告诉我们你想通过添加md5哈希来达到什么目的吗?

票数 1
EN

Stack Overflow用户

发布于 2012-03-28 07:59:35

不能使用md5添加+散列,就像不能使用+添加任何其他类型的字符串一样。这一差异是预期的,也是由于PHP的字符串到数字转换规则。对比一下:

代码语言:javascript
复制
'1string' + '2string'

使用

代码语言:javascript
复制
'string1' + 'string2'

如果数字加法md5s给出的结果与零不同,那是因为您添加的特定哈希以一个或多个十进制数开始。

没有合法的理由添加两个不代表十进制数的字符串,所以不要这样做。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9903292

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档