phpmd5加密16位
⑴ php md5密文转换成 16进制字符串
substr(md5($str),8,16);
⑵ php md5下16位和32位的实现代码
复制代码
代码如下:
<?php
echo substr(md5("admin"),8,16); // 16位MD5加密
echo "<hr>";
echo md5("admin"); // 32位MD5加密
?>
16位的MD5加密用substr函数截取了字符得到实现....
不想深入研究了 :) 要把脑力放到其他关键的地方~~
今天做了个php链接mssql数据库,数据库中的表中字段使用MD5十六加密的。但是php中的MD5默认是32位,导致登录程序没办法使用md5加密跟表中字段匹配,在网上一搜也有不少人有这方面的困惑,后来找到一个解决办法,是正确的,就记录下来。
使用substr函数截取:
substr(md5("admin"),8,16);
//
16位MD5加密
md5("admin");
//
32位MD5加密
经过脚本之家测试结果如下:
我们以asp的几个md5后的结果比较
附:如果遇到MD5加密文件,而又不知道的密码的,请在数据库中换上这组加密的数据。
admin---16位加密---7a57a5a743894a0e
admin---32位加密---
admin---40位加密---
substr(md5("admin"),8,16);
//
16位MD5加密
正是上面的32为从第8个字符开始的16个字符。所以大家不用考虑唯一性的问题。本身就是正确的。网上有人说php5支持
复制代码
代码如下:
echo
md5("admin",true);//返回16位,不过这是在PHP5里才有。
经测试输出的结果是乱码,如果大家有什么好的代码,可以分享下。
⑶ php md5加密 最多多少位
md5是一种散列函数。php
中md5加密结果默认长度是32
位,可将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法。该结果字符长度是固定的,而且是唯一的。示例:
<?php
$str="hello zho !";
echo md5($str);
//
$str2=" !";
echo md5($str2);
//
?>
⑷ php纯数字加密为可逆的定长密文
你这不是md5加密吗,sql直接写就行了。
你在数据库工具中执行一下,select md5(1);
或者php的md5函数
echo md5(1);
php自带可逆的加密是base64_encode和base64_decode,但是这个不是等长的,根据输入的内容变换长度。估计这个不适合你。
你还是网络”php加密解密“吧,有现成的函数。
⑸ php messagedigest md5 一定是16位吗
public final class MD5 {
/**
* 获取MD5加密后的字符串
* @param str 明文
* @return 加密后的字符串
* @throws Exception
*/
public static String getMD5(String str) throws Exception {
/** 创建MD5加密对象 */
MessageDigest md5 = MessageDigest.getInstance("MD5");
/** 进行加密 */
md5.update(str.getBytes());
/** 获取加密后的字节数组 */
byte[] md5Bytes = md5.digest();
String res = "";
for (int i = 0; i < md5Bytes.length; i++){
int temp = md5Bytes[i] & 0xFF;
if (temp <= 0XF){ // 转化成十六进制不够两位,前面加零
res += "0";
}
res += Integer.toHexString(temp);
}
return res;
}
}
//这是我写的32位MD5加密(原本是16位)
⑹ php中如何使用MD5加密
1.
MD5加密
string
md5
(
string
$str
[,
bool
$raw_output
=
false
]
)
参数
str
--
原始字符串。
raw_output
--
如果可选的
raw_output
被设置为
TRUE,那么
MD5
报文摘要
将以16字节长度的原始二进制格式返回。
这是一种不可逆加密,执行如下的代码
$password
=
'123456';
echo
md5($password);
得到结果是
