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

yipeiwu_com6年前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,则解密方法如下:

相关文章

dedecms中显示数字验证码的修改方法

输入字母验证码,俺觉得特烦,特别还要输入大写字母。于是找到文件并修改成数字验证码。 修改文件 验证码文件位置 include\validateimg.php 找到 for($i...

PHP一些有意思的小区别

单引号'和双引号"的区别:  首先是单引号要比双引号执行效率要高,因为双引号会对内容进行预处理。  例如:'$value' 输出字符 $value...

PHP将session信息存储到数据库的类实例

本文实例讲述了PHP将session信息存储到数据库的类。分享给大家供大家参考。具体分析如下: SessionHandlerInterface接口是PHP内置的接口,直接实现就行了 具体...

php中$_GET与$_POST过滤sql注入的方法

本文实例讲述了php中$_GET与$_POST过滤sql注入的方法,分享给大家供大家参考。具体分析如下: 此函数只能过滤一些敏感的sql命令了,像id=1这种大家还是需要自己简单过滤了。...

CakePHP去除默认显示的标题及图标的方法

去除的办法是: 修改cake\libs\view\templates\layouts\default.thtml,这个是视图文件的通用模板框架(带头部和脚部)。 另外: cakephp视...