国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

聊聊加密那點(diǎn)事——PHP加密最佳實(shí)踐

lcodecorex / 1456人閱讀

摘要:所謂對(duì)稱加密,就是加密和解密使用同一秘鑰,這也是這種加密算法最顯著的缺點(diǎn)之一。非對(duì)稱加密算法由于對(duì)稱加密在通信加密領(lǐng)域的缺陷,年和提出了非對(duì)稱加密的概念。非對(duì)稱加密,其主要缺點(diǎn)之一就是慢,適合加密少量數(shù)據(jù)。

1. 加密的目的

加密不同于密碼,加密是一個(gè)動(dòng)作或者過(guò)程,其目的就是將一段明文信息(人類或機(jī)器可以直接讀懂的信息)變?yōu)橐欢慰瓷先](méi)有任何意義的字符,必須通過(guò)事先約定的解密規(guī)則才能將信息轉(zhuǎn)換回有意義的可讀信息,通過(guò)加密可以防止非授權(quán)的信息竊取。

2. 存儲(chǔ)加密和傳輸加密

按照加密對(duì)象的不同,可以將加密分為:存儲(chǔ)加密和傳輸加密。存儲(chǔ)加密是指對(duì)存儲(chǔ)在紙質(zhì)、磁盤(pán)、數(shù)據(jù)庫(kù)等介質(zhì)上的數(shù)據(jù)進(jìn)行的加密,而傳輸加密則是指對(duì)數(shù)據(jù)在計(jì)算機(jī)網(wǎng)絡(luò)、電話、電報(bào)等通信信道上進(jìn)行的加密。不管是上述哪種加密,本質(zhì)上仍是對(duì)信息進(jìn)行加密。

3. 加密算法

加密算法,經(jīng)過(guò)歷史的演進(jìn),出現(xiàn)了很多種類的算法。我所了解的最簡(jiǎn)單的加密算法,就是從電影里看到的,通過(guò)一本字典或者圣經(jīng),使用頁(yè)碼和行列號(hào)等來(lái)對(duì)文字進(jìn)行一一對(duì)應(yīng)的加密。解密時(shí),只要解密的人拿著相同的字典和圣經(jīng),知道數(shù)字與文字的對(duì)應(yīng)關(guān)系,即可解密。這種加密方法曾經(jīng)很有效,因?yàn)橛米骷用艿淖值淇梢允侨魏我槐緯?shū)或者甚至可以是一份報(bào)紙。

3.1 對(duì)稱加密算法

按照現(xiàn)代的加密算法劃分,上述的加密方法,可以歸類為對(duì)稱加密的范疇。
所謂對(duì)稱加密,就是加密和解密使用同一秘鑰,這也是這種加密算法最顯著的缺點(diǎn)之一。上面的字典、圣經(jīng)等也可以理解為是一份秘鑰?,F(xiàn)代的加密算法中,DES、3DES、AES等算法都屬于對(duì)稱加密算法。
對(duì)稱加密有一個(gè)明顯的缺點(diǎn),就是即秘鑰。特別是在傳輸加密時(shí),信息的發(fā)送方和接收方需要使用相同的秘鑰來(lái)對(duì)信息進(jìn)行加解密,接收方如何安全的獲取秘鑰成為這類加密的焦點(diǎn),因?yàn)橐坏┟罔€被截獲,整個(gè)加密通信就形同明文傳輸。
因此,對(duì)稱加密比較適合存儲(chǔ)加密,例如有些計(jì)算機(jī)硬盤(pán)會(huì)通過(guò)主板上的加密芯片對(duì)整個(gè)硬盤(pán)進(jìn)行加密,使用的就是對(duì)稱加密算法。

3.2 非對(duì)稱加密算法

由于對(duì)稱加密在通信加密領(lǐng)域的缺陷,1976年W.Diffie和M.Hellman提出了“非對(duì)稱加密”的概念。這種加密算法的秘鑰分為“公開(kāi)秘鑰”和“私有秘鑰”,公開(kāi)秘鑰用于對(duì)信息進(jìn)行加密,而解密時(shí)使用私有秘鑰進(jìn)行解密,這樣,信息的接收方可以事先生成好一份公鑰和私鑰,然后將公鑰發(fā)給所有的信息發(fā)送方,信息發(fā)送方使用公鑰對(duì)信息進(jìn)行加密,然后將信息發(fā)送給接收方,接收方使用私鑰進(jìn)行解密即可。這種算法的優(yōu)勢(shì)在于,解密的私鑰不需要傳遞,降低(只能降低,無(wú)法避免,要考慮認(rèn)為因素)了私鑰泄密的可能性。

常見(jiàn)的非對(duì)稱加密算法有:RSA、EIGamal、背包算法、Rebin(RSA的特例)、迪菲-赫爾曼密鑰交換協(xié)議中的公鑰加密算法和橢圓曲線加密算法等。而最為大家熟知的就是RSA算法。

3.3 比較

對(duì)稱加密,由于加解密雙發(fā)必須擁有相同的秘鑰,分發(fā)和同步秘鑰的通信容易泄漏秘鑰,但是對(duì)稱加密的速度相比非對(duì)稱加密要快很多,特別對(duì)于大量數(shù)據(jù)的加密更加明顯。
非對(duì)稱加密,其主要缺點(diǎn)之一就是慢,適合加密少量數(shù)據(jù)。
因此,實(shí)際應(yīng)用當(dāng)中,經(jīng)常將二者結(jié)合使用,例如通信雙方建立通信后,A首先生成一對(duì)公鑰和私鑰,并將公鑰發(fā)送給B,B使用公鑰將一個(gè)對(duì)稱加密算法的“秘鑰+有效期”加密后,再發(fā)回給A,A使用私鑰解密后,雙方便同步了一個(gè)對(duì)稱算法的秘鑰,然后在規(guī)定的有效期內(nèi),雙方便可以使用這個(gè)秘鑰對(duì)通信數(shù)據(jù)進(jìn)行加密和解密。其過(guò)程大致如下圖所示:

3.4 誤區(qū)

看到這里,有些同學(xué)可能會(huì)問(wèn),我常用的md5、hash算法(sha1、sha256、sha512、sha1024等)怎么沒(méi)見(jiàn)你提及,其實(shí)準(zhǔn)確的說(shuō),md5和hash算法不能算是加密算法,它們都屬于信息摘要算法,可以為不同的信息生成獨(dú)一無(wú)二的信息摘要,而它們都屬于不可逆算法,即無(wú)法通過(guò)生成的摘要信息還原出原始信息。利用這種特性,實(shí)際應(yīng)用中,經(jīng)常會(huì)使用這些算法對(duì)用戶輸入的密碼進(jìn)行運(yùn)算,并對(duì)運(yùn)算結(jié)果進(jìn)行比較來(lái)驗(yàn)證用戶輸入密碼是否正確。還有一種應(yīng)用場(chǎng)景是通信簽名,用于驗(yàn)證通信過(guò)程中信息是否丟失或被篡改。

4. PHP加密最佳實(shí)踐

加密總是與安全密不可分,而每個(gè)PHPer都必須將應(yīng)用安全作為必要的設(shè)計(jì)思路融入代碼中,以下是一些最佳實(shí)踐的建議。

不要再使用MD5,不要使用sha1,基本上已經(jīng)沒(méi)有破解難度了。

請(qǐng)使用password_hash來(lái)哈希密碼(php版本大于等于5.5,小于5.5請(qǐng)使用password_compat庫(kù)),由于password_hash函數(shù)已幫你處理好了加鹽,而且作為鹽的隨機(jī)字串已通過(guò)加密算法成為了哈希的一部分,password_verify()函數(shù)會(huì)自動(dòng)將鹽從哈希中提取出來(lái),所以你無(wú)需考慮鹽的存儲(chǔ)問(wèn)題。

通信接口的簽名,請(qǐng)使用非對(duì)稱算法對(duì)簽名秘鑰進(jìn)行加密,并對(duì)秘鑰設(shè)置有效期,定期更換。

進(jìn)一步閱讀:
對(duì)稱加密算法
非對(duì)稱加密算法
更新后的 PHP: 現(xiàn)代 PHP 中的密碼安全性
PHP編程之道:安全

如果你有任何問(wèn)題或建議,可以掃描下方二維碼或者微信搜索[phpjiagoushier],關(guān)注我的微信公眾號(hào)[PHP架構(gòu)],與我交流互動(dòng)。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/22809.html

相關(guān)文章

  • 聊聊加密點(diǎn)事——PHP加密最佳實(shí)踐

    摘要:所謂對(duì)稱加密,就是加密和解密使用同一秘鑰,這也是這種加密算法最顯著的缺點(diǎn)之一。非對(duì)稱加密算法由于對(duì)稱加密在通信加密領(lǐng)域的缺陷,年和提出了非對(duì)稱加密的概念。非對(duì)稱加密,其主要缺點(diǎn)之一就是慢,適合加密少量數(shù)據(jù)。 1. 加密的目的 加密不同于密碼,加密是一個(gè)動(dòng)作或者過(guò)程,其目的就是將一段明文信息(人類或機(jī)器可以直接讀懂的信息)變?yōu)橐欢慰瓷先](méi)有任何意義的字符,必須通過(guò)事先約定的解密規(guī)則才能將...

    Mr_zhang 評(píng)論0 收藏0
  • PHP相關(guān)

    摘要:的機(jī)器學(xué)習(xí)庫(kù)的機(jī)器學(xué)習(xí)庫(kù),包括算法交叉驗(yàn)證神經(jīng)網(wǎng)絡(luò)等內(nèi)容。在即將到來(lái)的大會(huì)上,她將和大家分享在機(jī)器學(xué)習(xí)領(lǐng)域的全新可能。入門(mén)總結(jié)入門(mén)相關(guān),如安裝配置基本使用等。 基于 Swoole 開(kāi)發(fā) PHP 擴(kuò)展 Swoole-1.9.7 增加了一個(gè)新特性,可以基于 Swoole 使用 C++ 語(yǔ)言開(kāi)發(fā)擴(kuò)展模塊,在擴(kuò)展模塊中可以注冊(cè) PHP 內(nèi)置函數(shù)和類?,F(xiàn)在可以基于 Swoole 來(lái)編寫(xiě) PHP ...

    lewinlee 評(píng)論0 收藏0
  • 計(jì)算機(jī)常識(shí) - 收藏集 - 掘金

    摘要:使用簡(jiǎn)記后端掘金全稱為即消息隊(duì)列。優(yōu)測(cè)優(yōu)社區(qū)干貨精選老司機(jī)亂談編輯器之神掘金前言是一種信仰,我自從年有了這個(gè)信仰,已經(jīng)個(gè)年頭了。 PHP 程序員進(jìn)階學(xué)習(xí)書(shū)籍參考指南 - 后端 - 掘金PHP程序員進(jìn)階學(xué)習(xí)書(shū)籍參考指南 @heiyeluren lastmodify: 2016/2/18 ... 當(dāng)我們?cè)谡務(wù)撉岸思用軙r(shí),我們?cè)谡勑┦裁?- 前端 - 掘金潘建旭,豈安科技(www.bigse...

    Yi_Zhi_Yu 評(píng)論0 收藏0
  • 【第1期】聊聊css居中點(diǎn)事

    摘要:前言居中是網(wǎng)頁(yè)布局中再常見(jiàn)不過(guò)的一種方式了,今天我們就來(lái)聊聊居中的那點(diǎn)事。我是水平居中的同樣是針對(duì)塊級(jí)元素才有效果。來(lái)看代碼我是水平居中的必須配合來(lái)使用來(lái)可以實(shí)現(xiàn)居中的效果。方法二我是垂直居中的注意此方法要考慮的兼容性問(wèn)題。 前言:居中是網(wǎng)頁(yè)布局中再常見(jiàn)不過(guò)的一種方式了,今天我們就來(lái)聊聊css居中的那點(diǎn)事。 我們主要從這幾個(gè)方面來(lái)了解下居中: 水平居中 垂直居中 水平垂直居中 水平...

    劉永祥 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<