密碼加SALT原理

2022-02-12 09:22:31 字數 1027 閱讀 6914

原來這個技術叫salt,以前我們經常這麼用

我們知道,如果直接對密碼進行雜湊,那麼黑客可以對通過獲得這個密碼雜湊值,然後通過查雜湊值字典(例如md5密碼破解**),得到某使用者的密碼。

加salt可以一定程度上解決這一問題。所謂加salt方法,就是加點「佐料」。其基本想法是這樣的:當使用者首次提供密碼時(通常是註冊時),由系統自動往這個密碼裡撒一些「佐料」,然後再雜湊。而當使用者登入時,系統為使用者提供的**撒上同樣的「佐料」,然後雜湊,再比較雜湊值,已確定密碼是否正確。

這裡的「佐料」被稱作「salt值」,這個值是由系統隨機生成的,並且只有系統知道。這樣,即便兩個使用者使用了同乙個密碼,由於系統為它們生成的salt值不同,他們的雜湊值也是不同的。即便黑客可以通過自己的密碼和自己生成的雜湊值來找具有特定密碼的使用者,但這個機率太小了(密碼和salt值都得和黑客使用的一樣才行)。

下面以php示例,講解md5($pass.$salt)加密函式。

<?php

function hash($a)

?>

呼叫方式:$new_password=hash($_post[password]);   //這裡接受表單提交值,並進行加密

下面詳細介紹一下加salt雜湊的過程。介紹之前先強調一點,前面說過,驗證密碼時要使用和最初雜湊密碼時使用「相同的」佐料。所以salt值是要存放在資料庫裡的。

使用者註冊時,

使用者輸入【賬號】和【密碼】(以及其他使用者資訊);系統為使用者生成【salt值】;系統將【salt值】和【使用者密碼】連線到一起;對連線後的值進行雜湊,得到【hash值】;將【hash值1】和【salt值】分別放到資料庫中。

使用者登入時,

使用者輸入【賬號】和【密碼】;系統通過使用者名稱找到與之對應的【hash值】和【salt值】;系統將【salt值】和【使用者輸入的密碼】連線到一起;對連線後的值進行雜湊,得到【hash值2】(注意是即時運算出來的值);比較【hash值1】和【hash值2】是否相等,相等則表示密碼正確,否則表示密碼錯誤。

有時候,為了減輕開發壓力,程式設計師會統一使用乙個salt值(儲存在某個地方),而不是每個使用者都生成私有的salt值。

salt原理 cobbler原理簡述

salt原理 1.一條命令在client 可以理解為salt命令 上執行 salt test.ping,它將 和模組test.ping生成乙個字典,通過自己的req的埠,傳送給reqserver的4506埠 2.reqserver得到資訊,通過workers.ipc檔案傳遞給mworker程序,mw...

安全密碼機制(salt機制)

近日,csdn密碼被洩漏事件,確實不該,大網際網路企業,做法欠妥,也沒有給使用者乙個很好的交代。大家都在說為什麼沒有給密碼加點鹽,salt雜湊。我們知道,如果直接對密碼進行雜湊,那麼黑客 統稱那些有能力竊取使用者資料並企圖得到使用者密碼的人 可以對乙個已知密碼進行雜湊,然後通過對比雜湊值得到某使用者...

salt鹽度與使用者密碼加密機制

1 密碼必須雜湊儲存 內容略 2 加salt雜湊 我們知道,如果直接對密碼進行雜湊,那麼黑客 統稱那些有能力竊取使用者資料並企圖得到使用者密碼的人 可以對乙個已知密碼進行雜湊,然後通過對比雜湊值得到某使用者的密碼。換句話說,雖然黑客不能取得某特定使用者的密碼,但他可以知道使用特定密碼的使用者有哪些。...