为企业提供全套定制解决方案,
涵盖网站建设/SEO优化/营销推广/技术开发
湖北设计网页公司:网站安全 PHP中的密码如何加密,网站建设设计中除了考虑网站本身的类型、功能、定位以外,还需要遵循一定的色彩搭配原则来对网站进行设计,用以吸引大众的注意力,那么网站设计的色彩搭配具有哪些特性呢?色彩的鲜明性网站建设实现色彩鲜明多侧重色块、线条的组合,强调形式感,多用原色,这样就很容易吸引用户眼球,便于人们识别和记忆。小编为用户们整理了“网站安全 PHP中的密码如何加密”的相关内容!
为企业助力互联网营销推广,实现咨询、转化提升
-
网站优化
SEO排名24小时在线,稳定持续,任何时间都能让客户看到你。
-
网站设计
了解客户需求,客户评估,网站结构规划、内容编辑。
-
全网营销
流量是网站的生存根本,网站排名良好,可为企业带来大量目标客户,这便是询盘和成交量的保障。
-
软件定制
快速打造线上获客渠道,定制个性化微信小程序、百度小程序、支付宝小程序等解决方案。
层出不穷的数据库安全事件对用户会造成巨大的影响,因为人们往往习惯在不同网站使用相同的密码,一家“暴库”,全部遭殃!
一般的解决方案。
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中的密码如何加密”的相关内容!,湖北怡橙科技有限公司2019年创立以网站建设、移动互联网、年度运维服务为核心业务专注于技术开发和建站传播,为所有合作的企业机构贡献全力。想要了解更多“网站安全 PHP中的密码如何加密”的信息,请致电专业商务经理,电话:400-960-5068!
下一篇:下一篇详细