为什么我的 binary(64) 60 字符密码哈希在 phpmyadmin 中显示为 60 个字符,但在导出时最后有四个 '\0'?

Why is my binary(64) 60 char password hash shown as 60 characters in phpmyadmin, but upon exporting has four '\0's on the end?

我知道 \0 是结束字符串。为什么有四个?为什么在我的 php 代码中,我必须专门取前 60 个字符的子字符串才能使 password_verify 起作用? (例如 $passhash = substr($result, 0, 60);

感谢您提供的所有帮助。

PHPMyAdmin 根本没有向您显示此信息。

您有一个 64 字节的字段。它总是 64 字节。如果您使用了 60 个字节,则最后四个字节将为空字节。