本文给大众介绍php的三种常用的加密解密算法,有必定的参考价值,有必须的伴侣能够参考
一下,期盼对你们有所帮忙。
php 自带的加密函数:
不可逆的加密函数为:md5()、sha1()、crypt()
md5() 用来计算 MD5 哈稀
md5(string$str[,bool$raw_output=FALSE] ) :string
运用:
/**
* md5 有两个参数:
* 第1个参数:加密的字符串
* 第二个参数:被设置为 TRUE则返回16字节的原始二进制格式,默认 false 以 32 字符十六进制数字形式返回散列值
*/
$str = 123456789;
echo 默认MD5加密的字符串为:.md5($str)."\r\n"; //25f9e794323b453885f5181f1b624d0b
echo 第二个参数为TRUE MD5加密的字符串为:.md5($str,true) . "\n"; //%��2;E8��bM
sha1()—计算字符串的 sha1 散列值
sha1(string$str[,bool$raw_output= false] ) :string
运用:
/**
* sha1 有两个参数:
* 第1个参数:加密的字符串
* 第二个参数:被设置为 TRUE则返回20字节的原始二进制格式,默认 false 以 40 字符十六进制数字形式返回散列值
*/
$str = 123456789;
echo 默认sha1加密的字符串为:.sha1($str)."\r\n"; //d0be2dc421be4fcd0172e5afceea3970e2f3d940
echo 第二个参数为TRUE sha1加密的字符串为:.sha1($str,true) . "\n"; //%��2;E8��bM
crypt() 将字符串用 UNIX 的标准加密 DES 模块加密。这是单向的加密函数,没法解密。欲比
对字符串,将已加密的字符串的头二个字符放在 salt 的参数中,再比对加密后的字符串。
crypt(string$str[,string$salt] ) :string
运用:
/**
* crypt 有两个参数:
* 第1个参数:加密字符串
* 第二个参数:盐值字符串 */
$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$”,一个两位 cost 参数,“$” 以及 64 位由 “./0-9A-Za-z” 中的字符组合而成的字符串。在盐值中运用此范围之外的字符将引起 crypt() 返回一个空字符串。两位 cost 参数是循环次数以 2 为底的对数,它的范围是 04-31,超出这个范围将引起 crypt() 失败。 PHP 5.3.7 之前只支持 “$2a$” 做为盐值的前缀,PHP 5.3.7 起始引入了新的前缀来修正一个在Blowfish实现上的安全危害。能够参考» this document来认识关于这个修复的更加多信息。总而言之,研发者倘若仅针对 PHP
|