首页 后端开发 php教程 深入密码加salt原理的分析_PHP

深入密码加salt原理的分析_PHP

Jun 01, 2016 pm 12:06 PM
密码

我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如MD5密码破解网站),得到某用户的密码。

加Salt可以一定程度上解决这一问题。所谓加Salt方法,就是加点“佐料”。其基本想法是这样的:当用户首次提供密码时(通常是注册时),由系统自动往这个密码里撒一些“佐料”,然后再散列。而当用户登录时,系统为用户提供的代码撒上同样的“佐料”,然后散列,再比较散列值,已确定密码是否正确。

这里的“佐料”被称作“Salt值”,这个值是由系统随机生成的,并且只有系统知道。这样,即便两个用户使用了同一个密码,由于系统为它们生成的salt值不同,他们的散列值也是不同的。即便黑客可以通过自己的密码和自己生成的散列值来找具有特定密码的用户,但这个几率太小了(密码和salt值都得和黑客使用的一样才行)。

下面以PHP示例,讲解md5($pass.$salt)加密函数。
复制代码 代码如下:
function hash($a) {
    $salt=”Random_KUGBJVY”;  //定义一个salt值,程序员规定下来的随机字符串
    $b=$a.$salt;  //把密码和salt连接
    $b=md5($b);  //执行MD5散列
    return $b;  //返回散列   
}
?>

调用方式:$new_password=hash($_POST[password]);   //这里接受表单提交值,并进行加密
 
下面详细介绍一下加Salt散列的过程。介绍之前先强调一点,前面说过,验证密码时要使用和最初散列密码时使用“相同的”佐料。所以Salt值是要存放在数据库里的。

用户注册时,

用户输入【账号】和【密码】(以及其他用户信息);系统为用户生成【Salt值】;系统将【Salt值】和【用户密码】连接到一起;对连接后的值进行散列,得到【Hash值】;将【Hash值1】和【Salt值】分别放到数据库中。
用户登录时,

用户输入【账号】和【密码】;系统通过用户名找到与之对应的【Hash值】和【Salt值】;系统将【Salt值】和【用户输入的密码】连接到一起;对连接后的值进行散列,得到【Hash值2】(注意是即时运算出来的值);比较【Hash值1】和【Hash值2】是否相等,相等则表示密码正确,否则表示密码错误。
有时候,为了减轻开发压力,程序员会统一使用一个salt值(储存在某个地方),而不是每个用户都生成私有的salt值。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1664
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
win11提示若要继续,请输入管理员用户名和密码怎么解决? win11提示若要继续,请输入管理员用户名和密码怎么解决? Apr 11, 2024 am 09:10 AM

当使用Win11系统时,有时候会遇到需要输入管理员用户名和密码的提示,本文将探讨在遇到这种情况时应该如何处理。方法一:1、点击【Windows徽标】,然后按【Shift+重启】进入安全模式;或者这样进入安全模式:点击开始菜单,选择设置。选择“更新和安全”;选择“恢复”中的“立即重启”;重启进入选项后选择——疑难解答——高级选项——启动设置—&mdash

如何为您的Microsoft帐户使用Passkey 如何为您的Microsoft帐户使用Passkey Feb 19, 2024 am 11:03 AM

Passkey是一种更高级和安全的登录方式,可与Microsoft账户一起使用。本文将指导您如何在Microsoft账户中使用Passkey,介绍其优势以及与密码的区别。在深入细节之前,我们强调,如果您经常忘记密码或需要快速登录,Passkey通常会更适合您。什么是Passkey?它们与密码有什么不同?密码是一种高级且安全的身份验证方式,可以代替传统的密码登录方式。每个应用程序都有独特的密钥,确保安全性,防止网络钓鱼等威胁。用户可以通过电子邮件和密码确认身份,也可使用面部识别、指纹或安全密钥进行

如何使用手机设置路由器WiFi密码(以手机为工具) 如何使用手机设置路由器WiFi密码(以手机为工具) Apr 24, 2024 pm 06:04 PM

无线网络已经成为人们生活中不可或缺的一部分、在当今数字化的世界中。保护个人无线网络的安全性却显得尤为重要、然而。设置一个强密码是确保你的WiFi网络不被他人侵入的关键。保障你的网络安全,本文将详细介绍如何使用手机来修改路由器WiFi密码。1.打开路由器管理页面-在手机浏览器中打开路由器管理页面、通过输入路由器的默认IP地址。2.输入管理员用户名和密码-以获得访问权限,在登录页面中输入正确的管理员用户名和密码。3.导航到无线设置页面-查找并点击进入无线设置页面,在路由器管理页面中。4.找到当前Wi

密码不正确,小心BitLocker警告 密码不正确,小心BitLocker警告 Mar 26, 2024 am 09:41 AM

本文将探讨如何解决密码错误的问题,特别是在处理BitLocker警告时需要小心。当在BitLocker中多次输入错误密码以解锁驱动器时,就会触发这个警告。通常,这个警告出现是因为系统设定了限制错误登录尝试的策略(通常是允许3次登录尝试)。在这种情况下,用户会收到相应的警告信息。完整的警告信息如下:输入的密码不正确,请注意-连续输入错误密码会导致账户被锁定,这是为了保护您的数据安全。如果需要解锁账户,您将需要使用BitLocker恢复密钥。密码不正确,小心BitLocker警告当您登录计算机时收到

如何立即取消Windows 10的锁屏密码 如何立即取消Windows 10的锁屏密码 Jan 09, 2024 pm 03:33 PM

升级了win101909系统后,可能有的小伙伴们会有想要取消自己电脑锁屏密码的需求。如果不知道应该怎么做的话,小编觉得我们可以在电脑的设置窗口中找到账户选项,具体方法一起来看看吧。win101909如何取消锁屏密码:1、首先按Win+I打开设置界面。2、然后找到账户--登录选项,再进行如图设置即可。win101909取消开机密码登录的方法:1、在运行中执行regedit打开注册表,定位至如下路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\Cu

手机修改wifi密码教程(简单操作) 手机修改wifi密码教程(简单操作) Apr 26, 2024 pm 06:25 PM

无线网络已经成为我们生活中不可或缺的一部分、随着互联网的快速发展。为了保护个人信息和网络安全,定期更改wifi密码是非常重要的、然而。帮助大家更好地保护家庭网络安全,本文将为大家介绍如何利用手机修改wifi密码的详细教程。1.了解wifi密码的重要性wifi密码是保护个人信息和网络安全的道防线,在网络时代、了解其重要性可以更好地理解为什么需要定期修改密码。2.确认手机连接到wifi首先确保手机已连接到要修改密码的wifi网络上,在修改wifi密码之前。3.打开手机设置菜单进入手机的设置菜单、在手

如何给excel设置密码 如何给excel设置密码 Mar 21, 2024 am 09:00 AM

前几天表弟找我诉苦说用excel辛苦做了一大堆数据,结果后来被同事给修改了,当时不知道情况,发给老板后被臭骂了一顿。这确实挺让人无奈的,有的人就是看你不顺眼,就是想故意整你,离开学校步入社会以后,你会发现背后捅刀子的人越来越多。除了安慰表弟几句以外,我还给了表弟一个意见,如果怕以后再遇到这样的事情,那就把excel表格设置密码,除了你可以打开以外,别人谁都打不开。广大网友们,如果你也怕自己的excel表格被别人偷偷修改,也应该设置密码的。excel密码表格如何设置密码?跟我一起来了解一下吧!1.

win10开机密码忘记按F2怎么操作 win10开机密码忘记按F2怎么操作 Feb 28, 2024 am 08:31 AM

想必很多的用户家里都有那么几台不用的电脑,因为长时间不用完全忘记了开机密码,于是想要知道一下,忘记密码要怎么操作呢?那就一起来看看吧。win10开机密码忘记按F2怎么操作1、按下电脑的电源键,然后开机时按下F2(不同电脑品牌进入bios的按键也不同)。2、在bios界面中,找到security选项(不同品牌电脑的位置可能有所不同)。一般都在顶部的设置菜单中。3、然后找到SupervisorPassword选项并且点击。4、这时候用户就可以看到自己的密码了,同时找到旁边的Enabled切换为Dis

See all articles