详细解析PHP常⽤的加密函数,crypt()、md5()和sha1()
数据加密的原理就是对原来明⽂的⽂件或数据按照某种算法进⾏处理,使其成为不可读的⼀段代码,通常称为“密⽂”
⼀、crypt()
crypt()函数可以完成单向加密功能,语法是:
string crypt(string str[,string salt])
其中,str是需要加密的字符串,salt为加密时使⽤的⼲扰串。如果省略掉第⼆个参数,则会随机⽣成⼀个⼲扰串。
crypt()函数⽀持4种算法和salt参数长度,如下表:
算法salt长度
CRYPT_STD_DES2-character(默认)
CRYPT_EXT_DES9-character
CRYPT_MD512-character(以 $1 $开头)
CRYPT_BLOWFISH16-character(以 $2 $开头)
实例:
<?php
$str = "这是⼀个关于PHP加密函数的实例";
echo '加密前$str的值为:'.$str;
echo "<p>";
$cryptstr = crypt($str);
echo '加密后的值为:'.$cryptstr;
>
运⾏结果:
注意:每次刷新都会出现不同的加密结果。 php 5.6及之后的版本会在没有它的情况下抛出⼀个 E_NOTICE 级别的错误。为了更好的安全性,请确保指定⼀个⾜够强度的盐值。
⼆、md5()
md5函数使⽤MD5算法,它的作⽤是把不同长度的数据信息经过⼀系列的算法计算成⼀个128位的数值。
语法格式为:
string md5(string str[,bool raw_output])
php延时函数字符串str为要加密的明⽂,raw_output默认为:false,如果设为true,则函数返回⼀个⼆进制形式的密⽂。
很多⽹站注册⽤户的密码都使⽤md5加密,然后保存到数据库中,⽤户登录时,程序把⽤户输⼊的密码计算成md5值,然后再和数据库中保存的md5值进⾏⽐较。在这个过程中,程序⾃⾝都不会知道⽤户的真实密码,从⽽保证⽤户的个⼈隐私,提⾼安全性。
实例:
<?php
$str = "这是⼀个md5加密的字符串";
$strmd5 = md5($str);
echo $strmd5;
>
运⾏结果:
三、sha1()
和md5加密算法类似,sha算法为安全哈希算法。
语法为:
string sha1(string str[,bool raw_output])
字符串str为要加密的明⽂,raw_output默认为:false,如果为false,则函数返回⼀个40位的⼗六进制数,如果设为true,则函数返回⼀个20位的⼆进制数。
例如:
<?php
$str = "hello"; //定义字符串hello
$strmd5 = md5($str); //md5加密
$strsha1 = sha1($str); //sha1加密
echo "使⽤md5加密字符串后的值为:".$strmd5;
echo "<p>";
echo "使⽤sha1加密字符串后的值为:".$strsha1;
>
运⾏结果:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论