内容原创
本文给大家介绍php的三种常用的加密解密算法,有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所帮助。
php 自带的加密函数:
不可逆的加密函数为:md5()、sha1()、crypt()
md5() 用来计算 MD5 哈稀
md5(string$str[,bool$raw_output=FALSE] ) :string
使用:
/** * md5 有两个参数: * 第一个参数:加密的字符串 * 第二个参数:被设置为 TRUE则返回16字节的原始二进制格式,默认 false 以 32 字符十六进制数字形式返回散列值 */$str = '123456789';echo '默认MD5加密的字符串为:'.md5($str)."\r\n"; //25f9e794323b453885f5181f1b624d0becho '第二个参数为TRUE MD5加密的字符串为:'.md5($str,true) . "\n"; //%��2;E8��bM
sha1()—计算字符串的 sha1 散列值
sha1(string$str[,bool$raw_output= false] ) :string
使用:
/** * sha1 有两个参数: * 第一个参数:加密的字符串 * 第二个参数:被设置为 TRUE则返回20字节的原始二进制格式,默认 false 以 40 字符十六进制数字形式返回散列值 */$str = '123456789';echo '默认sha1加密的字符串为:'.sha1($str)."\r\n"; //d0be2dc421be4fcd0172e5afceea3970e2f3d940echo '第二个参数为TRUE sha1加密的字符串为:'.sha1($str,true) . "\n"; //%��2;E8��bM
crypt() 将字符串用 UNIX 的标准加密 DES 模块加密。这是单向的加密函数,无法解密。欲比
对字符串,将已加密的字符串的头二个字符放在 salt 的参数中,再比对加密后的字符串。
crypt(string$str[,string$salt] ) :string
使用:
/** * crypt 有两个参数: * 第一个参数:加密字符串 * 第二个参数:盐值字符串 */$str = '123456789';// 使用自动盐值echo '自动 盐值: ' . crypt($str) . "\n"; // $1$yvnZHBo0$sBZBd0vzZYnxbtQftQulZ///以不同散列类型使用 crypt()/** * CRYPT_STD_DES - 基于标准 DES 算法的散列使用 "./0-9A-Za-z" 字符中的两个字符作为盐值。在盐值中使用非法的字符将导致 crypt() 失败。 * CRYPT_EXT_DES - 扩展的基于 DES 算法的散列。其盐值为 9 个字符的字符串,由 1 个下划线后面跟着 4 字节循环次数和 4 字节盐值组成。它们被编码成可打印字符,每个字符 6 位,有效位最少的优先。0 到 63 被编码为 "./0-9A-Za-z"。在盐值中使用非法的字符将导致 crypt() 失败。 * CRYPT_MD5 - MD5 散列使用一个以 $1$ 开始的 12 字符的字符串盐值。 * CRYPT_BLOWFISH - Blowfish 算法使用如下盐值:“$2a$