導覽
近期變更
隨機頁面
新手上路
新頁面
優質條目評選
繁體
不转换
简体
繁體
18.117.94.221
登入
工具
閱讀
檢視原始碼
特殊頁面
頁面資訊
求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。
檢視 鹽 (密碼學) 的原始碼
←
鹽 (密碼學)
前往:
導覽
、
搜尋
由於下列原因,您沒有權限進行 編輯此頁面 的動作:
您請求的操作只有這個群組的使用者能使用:
用戶
您可以檢視並複製此頁面的原始碼。
{| class="wikitable" style="float:right; margin: -10px 0px 10px 20px; text-align:left" |<center>'''鹽 (密碼學)'''<br><img src="http://www.tsnien.idv.tw/Security_WebBook/Security_%E6%8F%92%E5%9C%96/%E5%9C%96%2013-0.png" width="280"></center><small>[http://www.tsnien.idv.tw/Security_WebBook/%E7%AC%AC%E5%8D%81%E4%B8%89%E7%AB%A0%20%E7%94%A8%E6%88%B6%E8%AA%8D%E8%AD%89%E5%8D%94%E5%AE%9A.html 圖片來自tsnien]</small> |} '''盐'''(Salt),在[[密码学]]中,是指在[[散列]]<ref>[https://wiki.mbalib.com/zh-tw/%E5%93%88%E5%B8%8C%E7%AE%97%E6%B3%95 散列],mbalib</ref> 之前将散列内容(例如:密码)的任意固定位置插入特定的字符串。这个在散列中加入字符串的方式称为「加盐」。其作用是让加盐後的散列结果和没有加盐的结果不相同,在不同的应用情景中,这个处理可以增加额外的安全性。 在大部份情况,盐是不需要保密的。盐可以是[[随机]]产生的字符串,其插入的位置可以也是随意而定。如果这个散列结果在将来需要进行验证(例如:验证用户输入的密码),则需要将已使用的盐记录下来。 ==实现原理== 加盐的实现过程通常是在需要散列的字段的特定位置增加特定的字符,打乱原始的字串,使其生成的散列结果产生变化。比如,用户使用了一个密码: x7faqgjw 经过SHA散列后,可以得出结果: 58ecbf2b3136ceda7fddfd986ba8bd8d59b2d73779691e839f3f176ce2c04b84 但是由于用户密码位数不足,短密码的散列结果很容易被[[彩虹表]]破解,因此,在用户的密码末尾添加特定字串(绿色字体为加盐的字段): x7faqgjw 因此,加盐后的密码位数更长了,散列的结果也发生了变化: 7b5001a5a8bcdcfa1b64d41f6339cfa7a5c0eca04cca6ff6a6c1d6aad17794cc 以上就是加盐过程的简单描述,在实际使用过程中,还需要通过特定位数插入、倒序或多种方法对原始密码进行固定的加盐处理,使得散列的结果更加不容易被破解或轻易得到原始密码,比如(绿色字体为加盐字串): x7jw ==代码样本== ===PHP=== 这是一个简单的、在输入内容之後加入“WIKIPEDIA“并进行散列的PHP代码。 <?php function hash($a) { $salt="WIKIPEDIA"; //定义一个加盐字段(WIKIPEDIA),一旦设定并使用,将不可更动。 $b=$a.$salt; //把密码和加盐字段连接。 $b=sha($b); //执行MD5散列。 return $b; //返回散列。 ==安全因素== 通常情况下,当字段经过散列处理(如[[SHA-1]]),会生成一段散列值,而散列后的值一般是无法通过特定算法得到原始字段的。但是某些情况,比如一个大型的[[彩虹表]],通过在表中搜索该SHA-1值,很有可能在极短的时间内找到该散列值对应的真实字段内容。 加盐后的散列值,可以极大的降低由于用户数据被盗而带来的密码泄漏风险,即使通过彩虹表寻找到了散列后的数值所对应的原始内容,但是由于经过了加盐,插入的字符串扰乱了真正的密码,使得获得真实密码的概率大大降低。 == 參考文獻 == {{reflist}} [[Category: 310 數學總論]]
此頁面使用了以下模板:
Template:Main other
(
檢視原始碼
)
Template:Reflist
(
檢視原始碼
)
模块:Check for unknown parameters
(
檢視原始碼
)
返回「
鹽 (密碼學)
」頁面