php用户名的密码加密更安全的方法

yipeiwu_com5年前PHP代码库

php中对用户密码的加密主要有两种方法,一种是利用md5加密,另一种是利用password_hash加密,两种方法中后一种的方法比前一种方法安全很多,几乎不能被黑客破解,但php版本必须在5.5以上。下面介绍两种加密方法如何加密才更安全。

新建一个PHP文件,命名为test.php。

利用md5加密。为了更加安全,可以给用户密码加上随机字符串再使用md5加密,产生随机字符串的函数如下:

假如用户的密码$password为123456,则可以把123456加上随机字符串传入md5函数中进行加密。随机字符串和用户密码都存储在数据库中,当解密的时候可以使用进行判断密码是否正确。

1、/4PHP版本在5.5以上的更安全的加密方式

新建一个php文件,命名为test2.php

使用password_hash()方法对密码进行加密,这是目前PHP最为安全的加密方式。假如用户密码为123456,加密方式如下:

由上面代码可见,加密的过程是很简单的,由于使用 bcrypt 算法,密码会随着PHP版本的不同,长度也会不同。因此,数据库里储存密码的字段最好是255个字符,可以避免出错。

password_hash解密的方式是通过password_verify()方法来解密的,假如数据库存储的密码为$db_password,则解密方法如下:

相关文章

PHP开发注意事项总结

1.使用内嵌的HTML代码,而不是PHP的echo语句。 因为PHP是一门嵌入式Web编程语言,可以将HTML代码和PHP代码相互嵌入。但是很多程序员担心在HTML代码中过多的使用”"嵌...

Thinkphp实现自动验证和自动完成

Thinkphp实现自动验证和自动完成

Thinkphp的自动验证和自动完成都是根所表单提交的内容来的,对部分数据进行规则验证和处理后插入到数据库。 1、自动验证格式: array( array(验证字段1,验证规则...

php array_slice函数的使用以及参数详解

复制代码 代码如下:<?php /* 用手册上的例子 */ $input = array ("a", "b", "c", "d", "e"); $output = array_sl...

php实现36进制与10进制转换功能示例

本文实例讲述了php实现36进制与10进制转换功能。分享给大家供大家参考,具体如下: /** * @desc im:十进制数转换成三十六机制数 * @param (int)$nu...

php若干单维数组遍历方法的比较

复制代码 代码如下: <?php //a $arr=array('a'=>'abc','b'=>123,'c'=>true); //b //$arr=range(...