Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 作战需求文件、md5在作战环境中表现出不同的行为@_Php_String_Char_Md5_Ord - Fatal编程技术网

Php 作战需求文件、md5在作战环境中表现出不同的行为@

Php 作战需求文件、md5在作战环境中表现出不同的行为@,php,string,char,md5,ord,Php,String,Char,Md5,Ord,我用ord检查@和@‪ 它们是相同的字符。但是ord输出相同的值,而md5不输出 php -a Interactive shell php > echo ord('@'); 64 php > echo ord('@‪'); 64 php > echo md5('@'); 518ed29525738cebdac49c49e60ea9d3 php > echo md5('@‪'); e6124653b6620abe51d7c401a7644674 php > 这是

我用ord检查@和@‪ 它们是相同的字符。但是ord输出相同的值,而md5不输出

php -a
Interactive shell

php > echo ord('@');
64
php > echo ord('@‪');
64

php > echo md5('@');
518ed29525738cebdac49c49e60ea9d3
php > echo md5('@‪');
e6124653b6620abe51d7c401a7644674
php >
这是截图,

第二个是@,后面是U+202A-从左到右嵌入。由于它们是不同的字符串,因此它们自然具有不同的MD5编码

php > echo md5("@\u{202a}");
e6124653b6620abe51d7c401a7644674

我无法复制。我总是得到518ED29525738CEBDAC49C49E60EA9D3这里发生了其他事情。检查隐藏字符。出于好奇,您是如何发现的?要添加:ord执行以下操作:将字符串第一个字节的二进制值解释为0到255之间的无符号整数。所以它只查看字符串的第一个字节。通过执行@sdafaf34we,您可能会得到相同的结果,它显然具有不同的md5,然后@Copy将问题中的文本粘贴到F12控制台,然后Array.fromthestring.mapc=>c.charCodeAt0.toString16Man,这是一些非常敏锐的观察。。竖起大拇指。。!!你能解释一下为什么toString中有16个?