关于php中md5加密16位的问题
墨初 编程开发 536阅读
在php脚本中使用md5函数进行加密会返回32位小写密文,但在某些情况下我们可以只需要md5加密后的密文为8位,那如何做呢?下面73so博客的小编就来和大家说一说。
php中的md5加密
md5():计算字符串的md5散列。
md5():此函数使用用rsa数据安全,包括md5的报文摘要算法。
语法:
md5(string,raw)
参数:
参数 | 描述 |
---|---|
string | 必需。规定要计算的字符串。 |
raw |
可选。规定十六进制或二进制输出格式: TRUE - 原始 16 字符二进制格式 FALSE - 默认。32 字符十六进制数 |
php md5用法
例:php计算一个字符串的md5的值
echo md5('73so.com'); // 2f3bc1ad4b916a7be84f331d6e95038a
例:php计算一个字串的md5值,以大写的方式返回。
在php中可以使用strtoupper()函数将小写的字母转为大写。
echo strtoupper(md5('73so.com')); //2F3BC1AD4B916A7BE84F331D6E95038A
php实现MD5加密16位生成
在php中可以通过substr()函数来截取md5 32位的方法来换取16位md5加密的值。
例:
# 获取16位md5加密的小写值 echo substr(md5('73so.com'),8,16); // 4b916a7be84f331d # 获取16位md5加密的大写值 echo strtoupper(substr(md5('73so.com'),8,16)); // 4B916A7BE84F331D
PS:关于md5报文摘要算法
MD5 报文摘要算法将任意长度的信息作为输入值,并将其换算成一个 128 位长度的"指纹信息"或"报文摘要"值来代表这个输入值,并以换算后的值作为结果。MD5 算法主要是为数字签名应用程序而设计的;在这个数字签名应用程序中,较大的文件将在加密(这里的加密过程是通过在一个密码系统下[如:RSA]的公开密钥下设置私有密钥而完成的)之前以一种安全的方式进行压缩。