ord, md5 показывает другое поведение на @ - PullRequest
0 голосов
/ 19 сентября 2019

Я использовал ord, чтобы проверить, @ и @‪ одинаковые символы.Но ord выводит то же значение, а md5 - нет.

php -a
Interactive shell

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

php > echo md5('@');
518ed29525738cebdac49c49e60ea9d3
php > echo md5('@‪');
e6124653b6620abe51d7c401a7644674
php >

Вот скриншот,
enter image description here

1 Ответ

10 голосов
/ 19 сентября 2019

Ваш второй номер @, за которым следует U+202A - LEFT-TO-RIGHT EMBEDDING.Поскольку они представляют собой разные строки, естественно, они имеют разные кодировки MD5.

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