軟件工程師應該關注的web加密手段


加密算法

1.非對稱加密(公開密鑰加密)       公開密鑰加密,是加密和解密使用不同密鑰的算法,廣泛用於信息傳輸中。

                                                      常見的算法有:RSA、ElGamal、Rabin。

2.對稱加密                                   將信息使用一個密鑰進行加密,解密時使用同樣的密鑰,同樣的算法進行解密。

                                                     常見的算法有:DES、3DES、AES。

 

數字證書

數字證書是由證書頒發機構(CA)來驗證證書持有人的身份受信任的第三方頒發的證書。

 

數字簽名

數字簽名是可用於驗證數字文檔的真實性的方法。

 

區別:

數字證書與數字證書都是非對稱加密的應用。

數字簽名是用於檢驗一個特定的數字文檔或消息是可信的。(即它被用來驗證該信息沒有被修改)

數字證書是一種機制通常用在網站上增加其可信度它的用戶。(即它被用來驗證該網站是否是受信用的網站)

 

摘要算法(散列算法)

1.md系列            常見的算法有MD5、MD4、MD3、MD2。

2.sha系列            常見的算法有SHA-1、SHA-224、SHA-256、SHA-384、SHA-512。

 

PS:md5算法原理

        對輸入的數據進行補位,使得如果數據位長度LEN對512求余的結果是448。即數據擴展至K*512+448位。即K*64+56個字節,K為整數。具體補位操作:補一個1,然后補0至滿足上述要求。 

 

區別:

加密算法是可逆。加密算法作用是提高信息的保密性。

例子:服務器對數據進行加密,發送它一個安全的SSL連接到瀏覽器,瀏覽器解密,就可以看到解密的內容。

 

散列算法不可逆。散列算法作用是驗證信息的完整性。對一段Message(字節串)產生fingerprint(指紋),可以防止被“篡改”。

例子:某軟件網站提供下載的MD5校驗值軟件xxx.exe,其MD5值是1e07ab3591d25583eff5129293dc98d2,但你下載該軟件后計算MD5發現其值卻是81395f50b94bb4891a4ce4ffb6ccf64b,那說明該程序已經被他人修改過,那還用不用該軟件那你可自己琢磨着看啦。

 

散列算法常常也用於加密,還有一些其他的加密手段,如:base64加密,利用編碼加密方式,但是容易被破解。

例子:網站用戶登陸的密碼,登陸輸入的密碼與注冊的密碼的生成的摘要算法值(如:md5)進行匹配,匹配成功就登入成功。

PS:前端對敏感數據加密提交,並不能提高應用的安全性。
         原因是前端加密的代碼必須首先傳輸到客戶端,如果在傳輸層(http協議)上被黑客截獲或篡改代碼(相當於與公開前端加密算法),那么前端加密必然不安全。
         所以要想保證前端敏感數據安全提交,就必須要在傳輸層(http協議)加密,而不是在應用層(前端應用)加密,采用https協議才是正確的方法(使用數字證書,無法偽造)。

         后端對敏感數據需要進行加密,不能以明文形式保存。

 

 

PS:2005年,中國密碼學家王小雲教授領導的小組利用雜湊函數碰撞成功破解MD5密碼算法,SHA-1密碼算法。(只是縮短了一些破譯的時間與步驟)

        只要的網站安全要求不是很高的話,散列算法一般還是可以繼續使用的,還是安全的。

        網上所謂MD5解密也不是很靠譜。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM