密碼加salt的原理是什么-創(chuàng)新互聯(lián)

這篇文章主要講解了“密碼加salt的原理是什么”,文中的講解內(nèi)容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“密碼加salt的原理是什么”吧!

創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站設(shè)計、成都做網(wǎng)站、元寶網(wǎng)絡(luò)推廣、成都小程序開發(fā)、元寶網(wǎng)絡(luò)營銷、元寶企業(yè)策劃、元寶品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們大的嘉獎;創(chuàng)新互聯(lián)為所有大學生創(chuàng)業(yè)者提供元寶建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:muchs.cn

我們知道,如果直接對密碼進行散列,那么黑客可以對通過獲得這個密碼散列值,然后通過查散列值字典(例如MD5密碼破解網(wǎng)站),得到某用戶的密碼。

加Salt可以一定程度上解決這一問題。所謂加Salt方法,就是加點“佐料”。其基本想法是這樣的:當用戶首次提供密碼時(通常是注冊時),由系統(tǒng)自動往這個密碼里撒一些“佐料”,然后再散列。而當用戶登錄時,系統(tǒng)為用戶提供的代碼撒上同樣的“佐料”,然后散列,再比較散列值,已確定密碼是否正確。

這里的“佐料”被稱作“Salt值”,這個值是由系統(tǒng)隨機生成的,并且只有系統(tǒng)知道。這樣,即便兩個用戶使用了同一個密碼,由于系統(tǒng)為它們生成的salt值不同,他們的散列值也是不同的。即便黑客可以通過自己的密碼和自己生成的散列值來找具有特定密碼的用戶,但這個幾率太小了(密碼和salt值都得和黑客使用的一樣才行)。

下面以PHP示例,講解md5($pass.$salt)加密函數(shù)。


復(fù)制代碼 代碼如下:


<?php
function hash($a) {
    $salt=”Random_KUGBJVY”;  //定義一個salt值,程序員規(guī)定下來的隨機字符串
    $b=$a.$salt;  //把密碼和salt連接
    $b=md5($b);  //執(zhí)行MD5散列
    return $b;  //返回散列   
}
?>



調(diào)用方式:$new_password=hash($_POST[password]);   //這里接受表單提交值,并進行加密
 
下面詳細介紹一下加Salt散列的過程。介紹之前先強調(diào)一點,前面說過,驗證密碼時要使用和最初散列密碼時使用“相同的”佐料。所以Salt值是要存放在數(shù)據(jù)庫里的。

用戶注冊時,

用戶輸入【賬號】和【密碼】(以及其他用戶信息);系統(tǒng)為用戶生成【Salt值】;系統(tǒng)將【Salt值】和【用戶密碼】連接到一起;對連接后的值進行散列,得到【Hash值】;將【Hash值1】和【Salt值】分別放到數(shù)據(jù)庫中。
用戶登錄時,

用戶輸入【賬號】和【密碼】;系統(tǒng)通過用戶名找到與之對應(yīng)的【Hash值】和【Salt值】;系統(tǒng)將【Salt值】和【用戶輸入的密碼】連接到一起;對連接后的值進行散列,得到【Hash值2】(注意是即時運算出來的值);比較【Hash值1】和【Hash值2】是否相等,相等則表示密碼正確,否則表示密碼錯誤。
有時候,為了減輕開發(fā)壓力,程序員會統(tǒng)一使用一個salt值(儲存在某個地方),而不是每個用戶都生成私有的salt值。

感謝各位的閱讀,以上就是“密碼加salt的原理是什么”的內(nèi)容了,經(jīng)過本文的學習后,相信大家對密碼加salt的原理是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

分享名稱:密碼加salt的原理是什么-創(chuàng)新互聯(lián)
網(wǎng)站URL:http://muchs.cn/article16/dejcdg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計公司、小程序開發(fā)、移動網(wǎng)站建設(shè)、面包屑導航ChatGPT、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護公司