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


Posted in PHP onJune 21, 2019

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

PHP 相关文章推荐
超级简单的php+mysql留言本源码
Nov 11 PHP
PHP关联数组的10个操作技巧
Jan 21 PHP
PHP连接MSSQL时nvarchar字段长度被截断为255的解决方法
Dec 25 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
php实现的验证码文件类实例
Jun 18 PHP
Yii中CGridView实现批量删除的方法
Dec 28 PHP
Symfony2学习笔记之插件格式分析
Mar 17 PHP
[原创]PHP实现SQL语句格式化功能的方法
Jul 28 PHP
PHP实现的大文件切割与合并功能示例
Apr 10 PHP
PHP标准库(PHP SPL)详解
Mar 16 PHP
laravel 根据不同组织加载不同视图的实现
Oct 14 PHP
PHP fopen中文文件名乱码问题解决方案
Oct 28 PHP
php常用字符串查找函数strstr()与strpos()实例分析
Jun 21 #PHP
php精度计算的问题解析
Jun 21 #PHP
laravel异步监控定时调度器实例详解
Jun 21 #PHP
apache集成php7.3.5的详细步骤
Jun 20 #PHP
PHP基础之输出缓冲区基本概念、原理分析
Jun 19 #PHP
PHP进阶学习之Geo的地图定位算法详解
Jun 19 #PHP
PHP进阶学习之依赖注入与Ioc容器详解
Jun 19 #PHP
You might like
使用PHP 5.0创建图形的巧妙方法
2010/10/12 PHP
thinkphp实现上一篇与下一篇的方法
2014/12/08 PHP
一个PHP实现的轻量级简单爬虫
2015/07/08 PHP
CodeIgniter分页类pagination使用方法示例
2016/03/28 PHP
PHP设计模式(八)装饰器模式Decorator实例详解【结构型】
2020/05/02 PHP
优化javascript的执行速度
2010/01/23 Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
js改变文章字体大小的实例代码
2013/11/27 Javascript
node.js中的dns.getServers方法使用说明
2014/12/08 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
2015/10/12 Javascript
AngularJS 工作原理详解
2016/08/18 Javascript
Angular.js中angular-ui-router的简单实践
2017/07/18 Javascript
原生JS实现自定义滚动条效果
2020/10/27 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
bootstrap+jquery项目引入文件报错的解决方法
2018/01/22 jQuery
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python读写文件方法总结
2015/06/09 Python
python从入门到精通(DAY 2)
2015/12/20 Python
python批量添加zabbix Screens的两个脚本分享
2017/01/16 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
python flask实现分页的示例代码
2018/08/02 Python
python 美化输出信息的实例
2018/10/15 Python
解决yum对python依赖版本问题
2019/07/05 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
python3从网络摄像机解析mjpeg http流的示例
2020/11/13 Python
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
Bath & Body Works阿联酋:在线购买沐浴和身体用品
2021/02/27 全球购物
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
医大实习自我鉴定
2013/12/07 职场文书
财务工作犯错检讨书
2014/10/07 职场文书
公务员个人年终总结
2015/02/12 职场文书
幼儿园家长反馈意见
2015/06/03 职场文书
大学生支教感言
2015/08/01 职场文书
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js