摘要:非對(duì)稱加密非對(duì)稱加密算法需要兩個(gè)密鑰來(lái)進(jìn)行加密和解密,這兩個(gè)秘鑰是公開(kāi)密鑰,簡(jiǎn)稱公鑰和私有密鑰,簡(jiǎn)稱私鑰。請(qǐng)查看歷史文章使用非對(duì)稱加密算法密鑰安全管理上面說(shuō)到的這幾種加密技術(shù),能夠達(dá)到安全保密效果的一種重要前提就是密鑰的安全。
單向散列加密
單向散列加密就是把任意長(zhǎng)的輸入消息串變化成固定長(zhǎng)的輸出串且由輸出串難以得到輸入串的一種加密算法。
常見(jiàn)單向散列函數(shù):
MD5 (Message Digest Algorithm 5)
SHA (Secure Hash Algorithm)
MAC (Message Authentication Code)
CRC (Cyclic Redundancy Check)
利用單項(xiàng)散列加密的這個(gè)特性,可以進(jìn)行密碼加密保存。
PHP 處理密碼的幾種方式
MD5(不推薦)
$password = md5($_POST["password"]);
原因:加密算法比較簡(jiǎn)單,而且很多破解密碼的站點(diǎn)都存放了大量的經(jīng)過(guò)MD5加密的密碼字符串。
SHA256 和 SHA512(不推薦)
$password = hash("sha256", $password);
原因:加密算法比較簡(jiǎn)單。
鹽值(額外字符串)(常用)
解釋:在加密的過(guò)程中,新增了一個(gè)字符串。
Bcrypt (比較安全)
$strSalt = "2f9c8d7h6g7f8d9k"; $salt = "$2y$11$" . $strSalt; echo crypt($password, $salt);解釋:salt 參數(shù)是可選的。然而,如果沒(méi)有salt的話,crypt()創(chuàng)建出來(lái)的會(huì)是弱密碼。
PHP函數(shù):http://php.net/manual/zh/func...
password_hash (安全)
//支持版本 (PHP 5 >= 5.5.0, PHP 7) echo password_hash($password, PASSWORD_DEFAULT);解釋:password_hash() 使用足夠強(qiáng)度的單向散列算法創(chuàng)建密碼的哈希(hash)。
PHP函數(shù):http://php.net/manual/zh/func...
PHP端驗(yàn)證密碼是否正確?
$password = "e4r3t2y1u"; $strPwdHash = password_hash($password, PASSWORD_DEFAULT); if (password_verify($password, $strPwdHash)) { //驗(yàn)證成功 } else { //驗(yàn)證失敗 }對(duì)稱加密
采用單鑰密碼系統(tǒng)的加密方法,同一個(gè)密鑰可以同時(shí)用作信息的加密和解密,這種加密方法稱為對(duì)稱加密,也稱為單密鑰加密。
優(yōu)點(diǎn):對(duì)稱加密算法的優(yōu)點(diǎn)是算法公開(kāi)、計(jì)算量小、加密速度快、加密效率高。
缺點(diǎn):在數(shù)據(jù)傳送前,發(fā)送方和接收方必須商定好秘鑰,雙方必須保存好秘鑰。
常用算法:
DES
AES
PHP 相關(guān)類庫(kù),網(wǎng)上都能找到。
非對(duì)稱加密
非對(duì)稱加密算法需要兩個(gè)密鑰來(lái)進(jìn)行加密和解密,這兩個(gè)秘鑰是公開(kāi)密鑰(public key,簡(jiǎn)稱公鑰)和私有密鑰(private key,簡(jiǎn)稱私鑰)。
請(qǐng)查看歷史文章:PHP 使用非對(duì)稱加密算法 (RSA)
密鑰安全管理
上面說(shuō)到的這幾種加密技術(shù),能夠達(dá)到安全保密效果的一種重要前提就是密鑰的安全。
在實(shí)際工作中,我們有開(kāi)發(fā)環(huán)境,預(yù)發(fā)布環(huán)境,正式環(huán)境,每個(gè)環(huán)境中的密鑰都不相同。
那么,我們應(yīng)該如何保存密鑰呢?
寫(xiě)在源碼中(不可取)。
寫(xiě)在配置文件中。(大部分這樣干)。
寫(xiě)在環(huán)境變量中。(大部分這樣干)。
保存在一個(gè)系統(tǒng)中,每次加密、解密都調(diào)取服務(wù)系統(tǒng)(系統(tǒng)開(kāi)銷大)。
自己寫(xiě)一個(gè)擴(kuò)展,用PHP調(diào)取自己的擴(kuò)展(維護(hù)成本高)。
暫時(shí)就想到這么多,望大神提供新的思路~
Thanks ~
AD:
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30507.html
摘要:解決方案部署在云端服務(wù)器和存儲(chǔ)間,以確保服務(wù)器和存儲(chǔ)間的每字節(jié)數(shù)據(jù)都被加密了,并且從存儲(chǔ)移動(dòng)到服務(wù)器的每字節(jié)數(shù)據(jù)都只能通過(guò)客戶來(lái)解密。公司稱,這具有軍用級(jí)安全性,因?yàn)橹挥幸环郊纯蛻舫钟兄髅荑€來(lái)解密數(shù)據(jù)。 靜態(tài)數(shù)據(jù)一直是通過(guò)被稱為公鑰基礎(chǔ)設(shè)施(PKI)的技術(shù)來(lái)保護(hù):當(dāng)數(shù)據(jù)被創(chuàng)建時(shí),就會(huì)使用公鑰對(duì)數(shù)據(jù)進(jìn)行加密,并且從理論上講,只有持有私鑰的授權(quán)人才能夠解密數(shù)據(jù)。當(dāng)將這種數(shù)據(jù)保護(hù)辦法擴(kuò)展到云環(huán)境...
摘要:王蒙沒(méi)那么淺地談?wù)勁c二四加密算法和密鑰管理介紹密鑰交換機(jī)制之前先普及一些加密算法基本知識(shí)以及為什么要有密鑰管理機(jī)制。證書(shū)證書(shū),顧名思義,就是頒發(fā)的證書(shū)。公鑰基礎(chǔ)設(shè)施公鑰基礎(chǔ)設(shè)施,簡(jiǎn)稱是目前網(wǎng)絡(luò)安全建設(shè)的基礎(chǔ)與核心。**玫瑰與荊棘共生,香菇與毒菇同長(zhǎng),真實(shí)與假冒比翼騰飛。——王蒙**沒(méi)那么淺地談?wù)凥TTP與HTTPS【二】四、加密算法和密鑰管理介紹密鑰交換機(jī)制之前先普及一些加密算法基本知識(shí)以及...
摘要:首發(fā)地址識(shí)別認(rèn)證與安全第三部分的章提供了一系列的技術(shù)和機(jī)器,可用來(lái)跟蹤身份,進(jìn)行安全性檢測(cè),控制對(duì)內(nèi)容的訪問(wèn)。安全使用基本認(rèn)證的唯一方式就是將其與配合使用。加密之前的原始報(bào)文通常被稱為明文或。 WilsonLius blog 首發(fā)地址 識(shí)別,認(rèn)證與安全 第三部分的4章提供了一系列的技術(shù)和機(jī)器,可用來(lái)跟蹤身份,進(jìn)行安全性檢測(cè),控制對(duì)內(nèi)容的訪問(wèn)。 客戶端識(shí)別與cookie機(jī)制 第十一章 H...
閱讀 3424·2021-11-25 09:43
閱讀 2307·2021-09-06 15:02
閱讀 3548·2021-08-18 10:21
閱讀 3347·2019-08-30 15:55
閱讀 2354·2019-08-29 17:06
閱讀 3540·2019-08-29 16:59
閱讀 971·2019-08-29 13:47
閱讀 2769·2019-08-26 13:24