首页 » Web前端 » php的意思技巧_PHP中相符的一些坑

php的意思技巧_PHP中相符的一些坑

访客 2024-10-23 0

扫一扫用手机浏览

文章目录 [+]

例子

首先,看一下这段代码。
猜猜当作果会是什么

php的意思技巧_PHP中相符的一些坑

<?phpvar_dump(md5('240610708') == md5('QNKCDZO'));var_dump(md5('aabg7XSs') == md5('aabC9RqS'));var_dump(sha1('aaroZmOk') == sha1('aaK1STfY'));var_dump(sha1('aaO8zKZF') == sha1('aa3OFF9m'));var_dump('0010e2' == '1e3');var_dump('0x1234Ab' == '1193131');var_dump('0xABCdef' == ' 0xABCdef');var_dump(0 == 'abcdefg');var_dump(1 == '1abcdef');?>

一眼看过,很明显肯定都是false吧,但运行代码后创造全是true!

php的意思技巧_PHP中相符的一些坑
(图片来自网络侵删)

WTF!

为什么会这样?

开头我已经说过了,PHP 是弱类型的措辞。
利用==比拟两个变量时,当有一个变量为整数,其余一个变量也会转换为整数。
这也就阐明了,为什么0 == 'abcdefg'和1 == '1abcdef'会成立。

但是,其他的代码呢?字符串难道还会转换?

PHP 手册上为我们供应理解释解释。

If you compare a number with a string or the comparison involves numerical strings, then each string is converted to a number and the comparison performed numerically.

也便是说,如果你比较的两个字符串涉及到数字(如:\公众0\公众),那么每个字符串都会转换成数字。

在这里,我不得不说:PHP是最好的措辞!

危害

当我们的网站是直接MD5或Sha1加密而没有加盐,恰巧某用户密码加密涉及到数字,那么就有可能被碰撞破解!

办理

1.在开拓过程中尽可能避免利用==判断两个变量的值

2.密码加密最好利用password_hash()或者加盐md5($pwd.$salt)!

以上便是PHP中“==”的一些坑的详细内容,更多请关注其它干系文章!

更多技巧请《转发 + 关注》哦!

标签:

相关文章

介绍百度码,技术革新背后的智慧之光

随着科技的飞速发展,互联网技术已经成为我们生活中不可或缺的一部分。而在这个信息爆炸的时代,如何快速、准确地获取信息,成为了人们关注...

Web前端 2025-01-03 阅读3 评论0

介绍皮箱密码,开启神秘之门的钥匙

皮箱,作为日常生活中常见的收纳工具,承载着我们的珍贵物品。面对紧闭的皮箱,许多人却束手无策。如何才能轻松打开皮箱呢?本文将为您揭秘...

Web前端 2025-01-03 阅读4 评论0

介绍盗号器,网络安全的隐忧与应对步骤

随着互联网的快速发展,网络安全问题日益突出。盗号器作为一种非法工具,对网民的个人信息安全构成了严重威胁。本文将深入剖析盗号器的原理...

Web前端 2025-01-03 阅读2 评论0