㈠ Laravel 5.2 默認的密碼加密,怎麼加點鹽
查看這部分的源代碼可得,
// Laravel 的 bcrypt 就是
$hash = password_hash($value, PASSWORD_BCRYPT, ['cost' => 10]);
因為 password_hash 使用的是 crypt 演算法, 因此參與計算 hash值的:
演算法(就像身份證開頭能知道省份一樣, 由鹽值的格式決定), cost(默認10) 和 鹽值 是在$hash中可以直接看出來的!
所以說, Laravel 中bcrypt的鹽值是PHP自動隨機生成的字元, 雖然同一個密碼每次計算的hash不一樣.
但是通過 $hash 和 密碼, 卻可以驗證密碼的正確性!
具體來說, 比如這個
$hash = password_hash('password',PASSWORD_BCRYPT,['cost' => 10]);
echo $hash;
// 比如我這次算的是
// $hash = '$2y$10$';
那麼我們從這個 crypt的hash值中可以看到,
因為以$2y$開頭, 所以它的演算法是 CRYPT_BLOWFISH .
同時 CRYPT_BLOWFISH 演算法鹽值格式規定是 :
以$2y$開頭 + 一個兩位cost參數 + $ + 22位隨機字元("./0-9A-Za-z")
$hash(CRYPT_BLOWFISH是固定60位) = 鹽值 + 31位單向加密後的值
㈡ 資料庫里加密的密碼是怎麼實現的
一般是先加鹽再用不可逆加密演算法加密密碼的,常見的有:sha1 sha256 md5等。
作用:這些加密演算法,只能加密,不能逆向解密,所以使用這些演算法。即時你的資料庫被拖庫,得到的人,也無法知道用戶密碼。
為什麼加鹽
舉例
在注冊時,
假設你的密碼是1234,一般伺服器會加一個鹽(隨便一個亂打的字元串),和你的密碼加在一起,1234和efnU*(@#H!JKNF得到1234efnU*(@#H!JKNF這個值,然後再進行加密(這里我用md5)得到 ,於是資料庫里你的密碼就變為了
登入時,
你輸入1234, 然後伺服器用和注冊相同的步驟進行加密,得到加密後的值,,將這個值與資料庫的加密值比對,如果正確則登入。
㈢ Bitlocker安全性怎麼樣
Bitlocker安全性較好。目前來說不能破解。當然竊取密碼之類的不能算是破解。bitlocker的安全性,那應該看程序里有沒有已經公開的漏洞。
16^48=2^192長度。AES用的是256bit秘鑰長度,等同於2^256組合。從這個角度來說,安全性被縮減到了2^192組合。
不過一般來說,安全意識較好的用戶密碼也就是12位~16位左右的長度,算上標點符號也就一百來種字元,算頂了不過110^16種組合,依然遠低於恢復密鑰的長度。好在主密鑰是加鹽的,應該可以顯著提升運算復雜程度。
最後整個加密的安全性,完全是看自己的密碼管理水平,與微軟到底留沒留後門了。技術上可以說是萬無一失的。
BitLocker加密過程:
Windows操作系統方面,我們以系統自帶的BitLocker功能為例,本次我們以U盤為例,我們將一個放有文件的U盤插入電腦中,然後再資源管理器中直接右鍵就能看到「BitLocker」選項。
點開之後,就會啟動BitLocker程序,同時在此過程中不能動用硬碟數據,如果是U盤、移動硬碟等外接設備,則此過程中千萬不能拔出。
開啟之後我們就能看到加密方式,BitLocker提供兩種加密方式,一種是使用密碼進行加密或者解密,另一種是使用智能卡進行加密解密。「智能卡」是一張含有計算機晶元的小型卡片,通常由大型公司的信息技術部門頒發,一般個人很少使用。
在這個過程中,我們在此選擇「保存到文件」,同時為了進一步保證密鑰安全,我們也選擇「保存到Microsoft賬戶中」,保存的文件我們稍後詳解。
同時,還支持列印紙質密鑰可選,非常方便。需要提起注意的是,Windows 7操作系統無法支持備份到Microsoft賬戶中,只有Windows 8或更高級版本的系統才可以使用此功能。
之後就需要我們選擇加密驅動器的空間大小,BitLocker可以將整個硬碟空間進行加密,也可以僅將已使用的硬碟空間進行加密。
㈣ Android加密之MD5加密有什麼意義
MD5 加密, 能保證數據的唯一性,加密不可逆,目前網上所說的MD5 加密破解, 利用的就是MD5 加密的唯一性, 其實就是利用數據進行一次或數次加密 生成的結果進行匹配的 並不是所謂的破解, 因為MD5加密不可逆。 銀行賬戶密碼雖然只有6位,但進行N次加密之後(過程可能繼續加鹽)導緻密碼基本破解不了。
㈤ 為什麼登錄是要用MD5加密用戶輸入的密碼
MD5 是一種不可逆演算法
密碼被加密後被破解的可能性很小
(許多網站上說可以破解,其實是將常用的MD5值放到資料庫中用來查詢的....說白了,那不是破解,而是查詢,反查詢...~~只能"破解"簡單常用的 我剛剛生成的 誰幫我破一下?)
如果密碼用MD5加密了以後,下次登錄的時候只要將他登錄是輸入的值再加密,然後與資料庫中的標准答案比較就可以判定成功與否了
㈥ 資料庫編程中密碼鹽起什麼作用
混淆用的,比如你寫到資料庫裡面是MD5加密的,但是你用網上的解密工具一查就知道他的明文是什麼。而如果你加了鹽,也就是你的密碼+鹽,然後加密,那麼加密出來的那串,別人就不知道他明文是什麼了
㈦ 為什麼 chrome 登錄頁面密碼 傳輸到 後台 變成加密
安全性考慮,如果明文傳輸,很容易被網路攻擊者抓包破解。
不僅在傳輸時需要使用加密方式,存儲時也需要使用加密方式,否則遇到拖庫,則所有賬號、密碼都被泄露,是很嚴重的事故。
存儲密碼時,如果使用md5,則需要考慮加鹽,以大幅提高從md5密文反推出明文的難度(例如使用彩虹表方式)
㈧ 加鹽加密的介紹
加鹽加密是一種對系統登錄口令的加密方式,它實現的方式是將每一個口令同一個叫做」鹽「(salt)的n位隨機數相關聯。
㈨ 資料庫里的密碼為什麼要加密
那資料庫給你了.你知道別人資料庫用戶的帳號,你能登陸別人的帳號嗎?不能哈.別人密碼都是經過程序演算法加密的.你破解不了.有資料庫又咋滴.
㈩ 十大常見密碼加密方式
一、密鑰散列
採用MD5或者SHA1等散列演算法,對明文進行加密。嚴格來說,MD5不算一種加密演算法,而是一種摘要演算法。無論多長的輸入,MD5都會輸出一個128位(16位元組)的散列值。而SHA1也是流行的消息摘要演算法,它可以生成一個被稱為消息摘要的160位(20位元組)散列值。MD5相對SHA1來說,安全性較低,但是速度快;SHA1和MD5相比安全性高,但是速度慢。
二、對稱加密
採用單鑰密碼系統的加密方法,同一個密鑰可以同時用作信息的加密和解密,這種加密方法稱為對稱加密。對稱加密演算法中常用的演算法有:DES、3DES、TDEA、Blowfish、RC2、RC4、RC5、IDEA、SKIPJACK等。
三、非對稱加密
非對稱加密演算法是一種密鑰的保密方法,它需要兩個密鑰來進行加密和解密,這兩個密鑰是公開密鑰和私有密鑰。公鑰與私鑰是一對,如果用公鑰對數據進行加密,只有用對應的私鑰才能解密。非對稱加密演算法有:RSA、Elgamal、背包演算法、Rabin、D-H、ECC(橢圓曲線加密演算法)。
四、數字簽名
數字簽名(又稱公鑰數字簽名)是只有信息的發送者才能產生的別人無法偽造的一段數字串,這段數字串同時也是對信息的發送者發送信息真實性的一個有效證明。它是一種類似寫在紙上的普通的物理簽名,但是在使用了公鑰加密領域的技術來實現的,用於鑒別數字信息的方法。
五、直接明文保存
早期很多這樣的做法,比如用戶設置的密碼是「123」,直接就將「123」保存到資料庫中,這種是最簡單的保存方式,也是最不安全的方式。但實際上不少互聯網公司,都可能採取的是這種方式。
六、使用MD5、SHA1等單向HASH演算法保護密碼
使用這些演算法後,無法通過計算還原出原始密碼,而且實現比較簡單,因此很多互聯網公司都採用這種方式保存用戶密碼,曾經這種方式也是比較安全的方式,但隨著彩虹表技術的興起,可以建立彩虹表進行查表破解,目前這種方式已經很不安全了。
七、特殊的單向HASH演算法
由於單向HASH演算法在保護密碼方面不再安全,於是有些公司在單向HASH演算法基礎上進行了加鹽、多次HASH等擴展,這些方式可以在一定程度上增加破解難度,對於加了「固定鹽」的HASH演算法,需要保護「鹽」不能泄露,這就會遇到「保護對稱密鑰」一樣的問題,一旦「鹽」泄露,根據「鹽」重新建立彩虹表可以進行破解,對於多次HASH,也只是增加了破解的時間,並沒有本質上的提升。
八、PBKDF2
該演算法原理大致相當於在HASH演算法基礎上增加隨機鹽,並進行多次HASH運算,隨機鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。
九、BCrypt
BCrypt 在1999年就產生了,並且在對抗 GPU/ASIC 方面要優於 PBKDF2,但是我還是不建議你在新系統中使用它,因為它在離線破解的威脅模型分析中表現並不突出。
十、SCrypt
SCrypt 在如今是一個更好的選擇:比 BCrypt設計得更好(尤其是關於內存方面)並且已經在該領域工作了 10 年。另一方面,它也被用於許多加密貨幣,並且我們有一些硬體(包括 FPGA 和 ASIC)能實現它。 盡管它們專門用於采礦,也可以將其重新用於破解。