密碼學中,在散列前將指定的字符串插入散列內容中的任意固定位置,插入字符串的操做稱爲「加鹽」。php
散列:對數據處理的方法,經過散列函數/算法將項和索引(散列/散列值)生成散列表(便於搜索的數據結構)。算法
散列算法、哈希函數:用於加密密碼,由於其計算出的散列值(Hash Value)能不可逆(不可倒推原來的數值)。安全
爲了額外的安全,即便被彩虹表找到散列後對應的原始內容,因爲「加了鹽」,擾亂了真正的密碼,讓獲取到的難度增大了很多。數據結構
echo $md5 = md5('test'); // 098f6bcd4621d373cade4e832627b4f6 echo sha1('test'); // a94a8fe5ccb19ba61c4c0873d391e987982fbbd3 echo hash('md5', 'test'); // 098f6bcd4621d373cade4e832627b4f6 echo hash('sha256', 'test'); // 9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 echo hash('haval160,4', 'test'); // 516d3243a12ce3af38a005003c7221bf85299714
md5()、sha1()和sha256()並不適合用於密碼保護場景:函數
這些散列算法是面向快速、高效進行散列處理而設計,破解者能「暴力」獲取散列碼對應的原始數據。學習
注意:密碼散列只能保護密碼不會從數據表中直接獲取,沒法保證被注入惡意代碼攔截到密碼。加密
安全是門大學問,這僅是是我學習過程當中整理出來的一丟丟表面東西,但願能給屏幕前的你帶來一點幫助,但願咱們能共同進步 :) 若是能夠的話,能不能給我點個贊呀~ ~就一下啊...)spa