PHP比md5更安全的加密方式--哈希密码

传统加密方式:

md5(密码+盐值);

$passwordString=‘your password‘;//你的密码

$salt="your salt value";//盐值,增加复杂度(随机字串)

$md5Password=md5($passwordString.$salt);

从理论上来说,md5不可逆,算是一种比较安全的加密方式。但是我要提醒的是,md5早在04年的时候就被中国人破解(请自行搜索山东大学王小云)。一旦被人拖库的化,密码泄漏的可能性极大。

现在推荐一种新的处理方式:密码散列算法函数

PHP5.5引入了Password Hashing函数,内核自带无需安装扩展。在PHP5.4下测试了下也可是可以的,使用前最好确认一下你当前的环境是否支持这些函数。

Password Hashing主要提供了4个函数

//查看哈希值的相关信息
array password_get_info (string $hash)

//创建hash密码
string password_hash(string $password , integer $algo [, array $options ])

//判断hash密码是否特定选项、算法所创建
boolean password_needs_rehash (string $hash , integer $algo [, array $options ] 

boolean password_verify (string $password , string $hash)
//验证密码

代码演示:

$password = ‘password123456‘;//原始密码
//使用BCRYPT算法加密密码
$hash_password = password_hash($password, PASSWORD_BCRYPT);

if (password_verify($password , $hash_password)){
   echo "密码匹配";
}else{
   echo "密码错误";
}

重要特征:

通过password_hash加密后的密码,使用字典方式很难破解,因为每次生成的密码都是不一样的。破解这种加密只能采用暴力破解。

最后提醒:

加密方法再好,原始密码设置的过于简单都容易被破解,设置复杂的密码才是王道。

时间: 2024-07-29 13:19:06

PHP比md5更安全的加密方式--哈希密码的相关文章

GIT 用RSA加密方式来记住密码

ssh-kegen -t rsa -C "你的帐号";//生成rsa的公钥和密钥 当然这个要在GNU环境下来执行,要是用Windows的CMD是不可以的(不输入DIR时),感觉是因为windows的目录结构是不一样的 后面提示输入一些东西,只要默认就行. 找到ssh文件夹中的.pub文件,放到git服务器上就行. 显示目录 Windows:dir Linux:PWD

无线网卡加密方式wep wpa/wpa2 介绍

常见无线热点的配置选项:无线名称路由器的无线(Wi-Fi)名称.无线密码无线加密使用WPA2-PSK/WPA-PSK加密方式.AES加密算法,无线密码为8-63个字符,最好是数字.字母.符号的组合.信道无线数据信号传送的通道,建议保持默认的自动,此时路由器会自动根据周围的无线环境选择一个最好的信道.模式路由器工作的无线模式.频段带宽路由器传输无线数据的频段宽度.信号强度可以根据实际使用需要选择不同档次的信号强度.开启AP隔离开启之后可以安全隔离连接到路由器的各个无线设备. 加密方式: 1. WE

iOS 中的加密方式

1 加密方式主要有: Base64,MD5,RSA,DES,AES,钥匙串存储,Cookie 2 各加密方式的比较 2.1 Base64 2.1.1 基本原理:采用64个基本的 ASCII 值对数据进行重新编码. 2.1.2 实现步骤 > 将需要编码的数据拆分成字节数组 > 以3个字节为一组 > 按顺序排列24位数据,再将这24位数据均分为4组. > 再在每组的最高位前补2个0,称为一个字节. > 在最后一个字节不足的时候末尾填0 > 在最后编码完成的时候末尾添加1到2

iOS 之加密方式

iOS 中的加密方式 1 加密方式主要有: Base64,MD5,RSA,DES,AES,钥匙串存储,Cookie 2 各加密方式的比较 2.1 Base64 2.1.1 基本原理:采用64个基本的 ASCII 值对数据进行重新编码. 2.1.2 实现步骤 > 将需要编码的数据拆分成字节数组 > 以3个字节为一组 > 按顺序排列24位数据,再将这24位数据均分为4组. > 再在每组的最高位前补2个0,称为一个字节. > 在最后一个字节不足的时候末尾填0 > 在最后编码完

iOS开发,让数据更安全的几个加密方式

任何应用的开发中安全都是重中之重,在信息交互异常活跃的现在,信息加密技术显得尤为重要.在app应用开发中,我们需要对应用中的多项数据进行加密处理,从而来保证应用上线后的安全性,给用户一个安全保障.这篇文章就介绍在iOS开发中最常用的数据加密方式. 文中证书锁定内容部分参考了博客http://blog.csdn.net/dd864140130/article/details/52625666. iOS中数据加密的几方式 1.使用数字证书锁定来保证不被中间人拦截,将服务器返回的数据和我的当地证书进行

android环境下两种md5加密方式

在平时开发过程中,MD5加密是一个比较常用的算法,最常见的使用场景就是在帐号注册时,用户输入的密码经md5加密后,传输至服务器保存起来.虽然md5加密经常用,但是md5的加密原理我还真说不上来,对md5的认知目前仅仅停留在会使用的水平,想搞清楚还是要花点时间的,这是md5加密算法的相关介绍.本文主要介绍android平台下两种md5加密方式,分别为基于java语言的md5加密及ndk环境下基于c语言的md5加密. 下面代码为基于java语言的md5加密: public String getMD5

laravel5.4 登录注册MD5加密方式教程

上次写过一篇文章<laravle5.4修改成MD5验证加密方式>,这样做有一个缺点,是把整个框架的加密方式都修改了,今天分享的是针对注册登录的MD5加密方式,不影响其他hash加密. 转载请注明(B5教程网)原文链接:http://www.bcty365.com/content-153-5886-1.html 具体步骤如下 1.在app目录下,新建一个文件Libraries,在Libraries目录下新建一个MD5.php文件,里面代码如下: <?php namespace App\Li

laravle5.4修改成MD5验证加密方式

今天在做laravel项目的时候,需要做成md5加密的方式验证,那如何在不修改已有的源码去重构一下呢. 注:下面修改的代码做法,会把整个框架的加密方式全部修改,请根据自己的项目需求而定. 如果只要修改登录注册看这篇文章<laravel5.4登录注册MD5加密验证方法> 转载请注明(B5教程网)原文链接:http://www.bcty365.com/content-153-5884-1.html 1. 在app/下创建一个MD5/文件夹.里面创建一个MD5Hasher类(MD5Hasher.ph

MD5加密方式

MD5加密是一种安全系数比较高的加密方式,具有不可逆的加密特征,就是很难进行破解,现在对MD5加密进行破解的方式还是采用跑数据库的方式,时间比较长,耗费性能比较大,所以一般的破解都是要收费的. C#中的MD5加密使用微软提供的MD5加密的类进行实现,具体如下: public class MD5Encrypt { public static string Encrypt(string str) { MD5 md5 = MD5.Create(); byte[] bytes = Encoding.UT