编程语言
首页 > 编程语言> > PHP crypt()-返回的md5哈希

PHP crypt()-返回的md5哈希

作者:互联网

crypt()函数的docs(http://php.net/manual/de/function.crypt.php)显示以下MD5哈希示例:

$1$rasmusle$rISCgZzpwk3UhDidwXvin0

我知道,“ $1 $”是前缀,其中包含信息,即哈希是MD5哈希.

但是字符串的其余部分如何成为MD5哈希呢?通常它应该是32个字符的字符串(0-9,a-f),对吗?

我敢肯定,这是一个愚蠢的问题,但我仍然想问.

解决方法:

Normally it should be a 32 char string (0-9, a-f), right?

这是不正确的(至少严格来讲).从技术上讲,MD5哈希是一个128位的数值.您习惯的形式就是该数字的十六进制表示形式.之所以选择它是因为它们很容易以字符串形式进行交换(128位整数很难处理.毕竟,典型的整数变量通常仅包含64位).请考虑以下示例:

> md5(“ test”)以十六进制(以16为底)表示形式:098f6bcd4621d373cade4e832627b4f6
>以base 64表示形式的md5(“ test”):CY9rzUYh03PK3k6DJie09g ==
> md5(“ test”)以十进制(以10为底)表示形式:12707736894140473154801792860916528374
>以基数27表示形式的md5(“ test”)(从未使用,仅因为我可以并且证明我的观点):ko21h9o9h8bc1hgmao4e69bn6f

所有这些字符串代表相同的数值,只是基数不同.

标签:crypt,md5,php
来源: https://codeday.me/bug/20191120/2043155.html