为企业提供全套定制解决方案,
涵盖网站建设/SEO优化/营销推广/技术开发
湖北做设计网站的公司:网站安全 PHP中的密码如何加密,随着互联网的发展,许多个人和企业都在建设网站,但是真正能把自己的网站建设成功的却不多。因为很多企业或个人在网站建设的过程中,容易忽略一些细节,这就造成了网站建设完成后不是很好做后期工作。建议各企业老板如果打算开发属于自己公司的网站,可以找专业的开发团队,从策划到设计,从测试到维护,都能更加的省时省力,快捷方便好用。下面和小编一起来看看“网站安全 PHP中的密码如何加密”的相关知识内容!
多年专注网站建设与营销推广
-
网站优化
正规seo手段,网站优化安全稳定。
-
网站设计
适应各种屏幕、网站数据同步、电脑/手机/平板/微官网/公众号/小程序等。
-
全网营销
怡橙快排支持百度、百度移动、360、搜狗、神马等国内主流引擎,平台智能计算机每个引擎任务达标率,走势图一目了然。
-
软件定制
从产品调研,到设计,再到服务端及客户端,一切只为了指尖上极致体验。
层出不穷的数据库安全事件对用户会造成巨大的影响,因为人们往往习惯在不同网站使用相同的密码,一家“暴库”,全部遭殃!
一般的解决方案。
1、将明文密码做单向
$=5($_[""]);
2、密码+后做单向,内置了()函数,你只需要将加密方式传给()函数就好了。你可以直接指明256,512,5,1等加密方式
function generateHashWithSalt($password) {
$intermediateSalt = md5(uniqid(rand(), true));
$salt = substr($intermediateSalt, 0, 6);
return hash("sha256", $password . $salt);
}
?>
单向哈希算法有一个特性,无法通过哈希后的摘要()恢复原始数据,常用的单向哈希算法包括-256,-1,5等。例如,对密码“”进行-256哈希后的摘要()如下:
“833278054039140774521250490296395995244”
注意:攻击者可以将所有密码的常见组合进行单向哈希,得到一个摘要组合,然后与数据库中的摘要进行比对即可获得对应的密码。这个摘要组合也被称为。更糟糕的是,一个攻击者只要建立上述的,可以匹配所有的密码数据库。仍然等同于一家“暴库”,全部遭殃。
比较好的解决方案
function generateHash($password) {
if (defined("CRYPT_BLOWFISH") && CRYPT_BLOWFISH) {
$salt = '$2y$11$' . substr(md5(uniqid(rand(), true)), 0, 22);
return crypt($password, $salt);
}
}
?>
其实就是和()函数的结合,我们这里通过_判断是否可用,然后像上面一样生成一个盐值,不过这里需要注意的是,()的盐值必须以22或者22开头,详细资料可以参考下面的链接:
是5.5之后才有的新特性,它主要是提供下面几个函数供我们使用
_()–对密码加密.
_()–验证已经加密的密码,检验其字串是否一致.
__()–给密码重新加密.
__()–返回加密算法的名称和一些相关信息.
虽然说()函数在使用上已足够,但是_()不仅可以使我们的代码更加简短,而且还在安全方面给了我们更好的保障,所以,现在的官方都是推荐这种方式来加密用户的密码,很多流行的框架比如就是用的这种加密方式
$hash = password_hash($passwod, PASSWORD_DEFAULT);?>
_目前使用的就是,知名的还是。这里需要注意的是,如果你代码使用的都是_加密方式,那么在数据库的表中,字段就得设置超过60个字符长度,你也可以使用_,这个时候,加密后字串总是60个字符长度。
这里使用_()你完全可以不提供盐值()和消耗值(),你可以将后者理解为一种性能的消耗值,越大,加密算法越复杂,消耗的内存也就越大。当然,如果你需要指定对应的盐值和消耗值,你可以这样写
function custom_function_for_salt(){
return $salt = '$2y$11$' . substr(md5(uniqid(rand(), true)), 0, 22);
}
$password =123456;
$options = [
'salt' =>___(),//
''=>12//10
];
$=_($,_,$);
$;
?>
密码加密过后,我们需要对密码进行验证,以此来判断用户输入的密码是否正确
(_($, $)) {
//
}
{
//
}
直接使用_就可以对我们之前加密过的字符串(存在数据库中)进行验证了
如果有时候我们需要更改我们的加密方式,如某一天我们突然想更换一下盐值或者提高一下消耗值,我们这时候就要使用到__()函数了
if (password_needs_rehash($hash, PASSWORD_DEFAULT, ['cost' =>12])){
//12
$=_($,_,[''=>12]);
//'!
}
只有这样,的才会知道我们重现更换了加密方式,这样的主要目的就是为了后面的密码验证,__(),这个函数一般可以看到下面三个信息
–算法实例
–算法名字
–加密时候的可选参数
湖北做设计网站的公司:网站安全 PHP中的密码如何加密
以上是小编整理的“网站安全 PHP中的密码如何加密”的相关知识内容!,怡橙科技网站建设一站式服务:武汉网站设计制作、公司网站建设、高端网站设计、网站托管维护,助您轻松获取解决方案。想要了解更多“网站安全 PHP中的密码如何加密”的信息,请致电专业商务经理,一对一为您服务,咨询电话:400-960-5068!
上一篇:湖北设计网站公司:网站空间、vps主机及服务器的选择
下一篇:下一篇详细