search
HomeBackend DevelopmentPHP Tutorial深入密码加salt原理的分析_php技巧

我们知道,如果直接对密码进行散列,那么黑客可以对通过获得这个密码散列值,然后通过查散列值字典(例如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值。
Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
如何在没有密码的情况下解锁iPhone如何在没有密码的情况下解锁iPhoneAug 18, 2023 pm 09:49 PM

1.使用计算机在没有密码或面容ID的情况下解锁iPhone的第一种方法是使用计算机。您必须在恢复模式下恢复iPhone。完成后,您可以设置iPhone并设置新密码,触控ID,面容ID,或者选择使用您的设备而不使用任何这些。您可以使用Mac甚至WindowsPC进行此过程。请注意:此方法将删除所有内容,并将iPhone恢复出厂设置。如果您已备份数据,则可以在设置iPhone时恢复数据。1.首先,您需要关闭iPhone。2.接下来,执行强制重启以将iPhone置于恢复模式。对于iPhone8或更高版

如何立即取消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

如何修复“iPhone不可用”消息如何修复“iPhone不可用”消息Sep 17, 2023 pm 09:25 PM

“iPhone不可用”安全功能如何操作?触发“iPhone不可用”消息的基本机制植根于系统设计的安全功能,该功能可跟踪每个不正确的密码条目。这种保护机制从第五次错误尝试解锁设备开始进入高速运转。一旦达到这个里程碑,iPhone就会设置一分钟的临时锁定期,在此期间,任何输入密码的额外尝试都将变得徒劳无功。此锁定持续时间不是静态的,而是遵循不断升级的模式。具体来说,在第五次密码尝试之后,每次后续错误密码尝试都会导致锁定计时器增加一分钟。例如,第六次错误尝试将导致2分钟锁定,第七次错误尝试将导致3分钟

如何在Python中对密码进行哈希处理?如何在Python中对密码进行哈希处理?Aug 26, 2023 pm 06:57 PM

保护用户密码是应用程序开发的一个重要方面。保护密码的最佳方法之一是利用哈希计算。散列是将纯文本密码转换为不可转换的固定长度字符序列的过程。在本文中,我们将研究如何在Python中对密码进行哈希处理,讨论其中的语言结构和计算。我们还将提供两个真实的可执行代码示例来演示不同的密码哈希方法。语法为了在Python中对密码进行哈希处理,我们将利用hashlib模块,它提供了不同的哈希算法。利用hashlib散列秘密短语的基本句子结构如下-importhashlibpassword="my_pa

react怎么实现密码隐藏功能react怎么实现密码隐藏功能Jan 03, 2023 pm 03:25 PM

react实现密码隐藏功能的方法:1、添加依赖“import {View,Text,TouchableWithoutFeedback,TextInput,Image,StyleSheet,} from 'react-native';”;2、通过“{this.state.imageState ? (...)}”方法实现密码显示与隐藏功能即可。

解决win10输入密码后进入循环重启问题解决win10输入密码后进入循环重启问题Dec 29, 2023 pm 09:53 PM

我们在无意中进行了一些错误操作,或者是系统自身出现一定的错误时,就可能会出现输入密码进不了桌面一直重启的办法。这时候我们可以在安全模式中进行修复,下面就一起来看具体方法吧。win10输入密码进不了桌面一直重启解决方法1、首先我们长按键盘“shift”点击右下角的电源键,然后选择重启电脑,一直到出现修复界面再松开“shift”键。2、如果我们右下角没有电源键,也可以使用电脑主机的电源键,但是需要连续重启3次或以上才行。3、在出现了修复界面之后,我们点击“查看高级修复选项”。4、选择“疑难解答”。5

Windows 11默认账户密码简介Windows 11默认账户密码简介Jan 06, 2024 pm 04:29 PM

有的朋友新安装了win11系统,但是不知道windows11默认账号密码是什么,担心无法登录和正常使用。其实系统默认一般是没有密码的,我们只需要直接登录就可以了,下面一起来看看吧。windows11默认账号密码是什么:答:默认账号是administrator,没有密码。win11刚刚安装时,使用的默认账号都是“administrator”密码方面,系统安装都是没有默认密码的,不需要密码就能登录。windows11修改账号密码方法1、如果我们想要修改密码的话,可以打开开始菜单的“设置”2、接着点开

win10电脑设置密码的步骤教程win10电脑设置密码的步骤教程Jul 19, 2023 am 09:53 AM

电脑自从诞生以来就很好地被应用在了我们生活的方方面面,现在最新的电脑系统是win10系统,该系统有是经过无数次的测试之后才被推出来的,所以非常地流畅,那么win10怎么设置开机密码?下面,小编给大家带来了win10电脑设置密码的教程,一起来看看吧。1、点击“开始”菜单,然后点击“设置”。2、点击“账户”。3、点击“登录选项”。4、然后点击添加密码。5、接着输入我们的密码以及提示关键词。6、保存之后即是设置好密码了,重启电脑生效。以上就是win10电脑设置密码的教程啦,希望能帮助到大家。

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

mPDF

mPDF

mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),