时间:2021-07-01 10:21:17 帮助过:19人阅读
php常用的加密方法有:1、使用md5()函数;2、使用crypt()函数;3、使用sha1()函数;4、使用urlencode()函数;5、使用base64_encode()函数;6、使用password_hash()函数。
本教程操作环境:windows7系统、PHP7.1版,DELL G3电脑
常用的PHP加密方式
1. MD5加密
string md5 ( string $str [, bool $raw_output = false ] )
参数
str -- 原始字符串。
raw_output -- 如果可选的 raw_output 被设置为 TRUE,那么 MD5 报文摘要将以16字节长度的原始二进制格式返回。
2. Crype加密
crypt() 返回一个基于标准 UNIX DES 算法或系统上其他可用的替代算法的散列字符串。
string crypt ( string $str [, string $salt ] )
参数
str -- 待散列的字符串。
salt -- 可选的盐值字符串。如果没有提供,算法行为将由不同的算法实现决定,并可能导致不可预料的结束。
这是也一种不可逆加密
3. Sha1加密
string sha1 ( string $str [, bool $raw_output = false ] )
参数
str -- 输入字符串。
raw_output -- 如果可选的 raw_output 参数被设置为 TRUE,那么 sha1 摘要将以 20 字符长度的原始格式返回,否则返回值是一个 40 字符长度的十六进制数字。
这是也一种不可逆加密
4. URL加密
string urlencode ( string $str )
此函数便于将字符串编码并将其用于 URL 的请求部分,同时它还便于将变量传递给下一页。
返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。此编码与 WWW 表单 POST 数据的编码方式是一样的,同时与 application/x-www-form-urlencoded 的媒体类型编码方式一样。由于历史原因,此编码在将空格编码为加号(+)方面与 RFC1738 编码不同。
string urldecode ( string $str )
解码给出的已编码字符串中的任何 %##。 加号('+')被解码成一个空格字符。
这是一种可逆加密,urlencode方法用于加密,urldecode方法用于解密
5. Base64信息编码加密
string base64_encode ( string $data )
使用 base64 对 data 进行编码。
设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。
Base64-encoded 数据要比原始数据多占用 33% 左右的空间。
string base64_decode ( string $data [, bool $strict = false ] )
对 base64 编码的 data 进行解码。
参数
data -- 编码过的数据。
strict -- 如果输入的数据超出了 base64 字母表,则返回 FALSE。
6.phpass(推荐)
经 phpass 0.3 测试,在存入数据库之前进行哈希保护用户密码的标准方式。 许多常用的哈希算法如 md5,甚至是 sha1 对于密码存储都是不安全的, 因为骇客能够使用那些算法轻而易举地破解密码。
对密码进行哈希最安全的方法是使用 bcrypt 算法。开源的 phpass 库以一个易于使用的类来提供该功能
7.个人认为更好的密码加密方式
PHP5.5引入了Password Hashing函数,内核自带无需安装扩展。在PHP5.4下测试了下也可是可以的,使用前最好确认一下你当前的环境是否支持这些函数。
Password Hashing主要提供了4个函数
//1.查看哈希值的相关信息 array password_get_info (string $hash) //2.创建hash密码 string password_hash(string $password , integer $algo [, array $options ]) //3.判断hash密码是否特定选项、算法所创建 boolean password_needs_rehash (string $hash , integer $algo [, array $options ] //4.验证密码 boolean password_verify (string $password , string $hash)
如下实例:
$password = 'password123456';//原始密码 $hash_password = password_hash($password, PASSWORD_BCRYPT);//使用BCRYPT算法加密密码 if (password_verify($password , $hash_password)){ echo "密码匹配"; }else{ echo "密码错误"; }
推荐学习:《PHP视频教程》
以上就是php常用的加密方法有哪些的详细内容,更多请关注gxlcms其它相关文章!