隨著互聯網的快速發展,它已經成為了我們生活中不可或缺的一部分。與此同時,擁有一個安全的互聯網環境成為了我們每個人心聲。目前在公司里邊所做的事情,也涉及到了加密解密這一塊的東西,之前沒有怎么接觸過,所以這一次系統地過一下常見的加密解密都有哪些,不求深入,只求有一個大致的了解。
- 對稱/非對稱 加密
- 哈希加密及其破解方法
1. 對稱/非對稱 加密
對稱密鑰加密(英語:Symmetric-key algorithm)又稱為對稱加密、私鑰加密、共享密鑰加密,是密碼學中的一類加密算法。這類算法在加密和解密時使用相同的密鑰,或是使用兩個可以簡單地相互推算的密鑰。實務上,這組密鑰成為在兩個或多個成員間的共同秘密,以便維持專屬的通訊聯系。與公開密鑰加密相比,要求雙方取得相同的密鑰是對稱密鑰加密的主要缺點之一。
信息轉換過程可以描述為:
明文 <-> 密鑰 <-> 密文
常見的對稱加密算法有:
DES
、3DES
、AES
、Blowfish
、IDEA
、RC5
、RC6
。
特點:加密解密效率高
,速度快
,適合進行大數據量
的加解密。
公開密鑰加密(英語:public-key cryptography,又譯為公開密鑰加密),也稱為非對稱加密(asymmetric cryptography),一種密碼學算法類型,在這種密碼學方法中,需要一對密鑰(其實這里密鑰說法不好,就是“鑰”),一個是私人密鑰,另一個則是公開密鑰。這兩個密鑰是數學相關,用某用戶密鑰加密后所得的信息,只能用該用戶的解密密鑰才能解密。如果知道了其中一個,并不能計算出另外一個。因此如果公開了一對密鑰中的一個,并不會危害到另外一個的秘密性質。稱公開的密鑰為公鑰;不公開的密鑰為私鑰。
常見的非對稱加密算法有:
RSA
、DSA
、ECC
特點:算法復雜
,加解密速度慢
,但安全性高
,一般與對稱加密結合使用(對稱加密對內容加密,非對稱對對稱所使用的密鑰加密)
2. 哈希加密及其破解方法
哈希算法的特性:
哈希(Hash)算法是一種單向密碼體制,即只有加密過程,沒有解密過程。
相同輸入經過同一哈希函數得到相同散列值,但并非散列值相同則輸入結果相同。
哈希加密算法:
哈希算法應用于加密學,將加密學領域的哈希算法稱為哈希加密算法,常見的如上面提到的MD5,SHA-系列算法,每種哈希加密算法,均通過某種哈希函數進行迭代,將任意長度的消息輸入,經過壓縮生成“消息摘要”( MessageDigest)。
哈希加密算法的過程:
預處理(Preprocessing):消息填充、將消息分割成m個處理塊、為哈希設置初始化值
哈希計算(HashComputation):將預處理完成的數據生成消息摘要,利用對應的哈希函數、相關常熟生成哈希值(即散列值、摘要信息)。
每種哈希加密算法根據初始化參數生成固定長度的摘要信息,例如SHA-256生成的摘要信息長度為128位。越長安全性越高。
常見哈希加密算法有:MD5
、SHA-1
、SHA-2
、SHA-256
、SHA-X(系列)
此外還有一種哈希加密算法的擴展算法:哈希加鹽算法
我們可以通過在密碼中加入一段隨機字符串再進行哈希加密,這個被加的字符串稱之為鹽值。之所以要這樣做,是為了增加加密的安全性,盡最大可能被破解。
破解哈希的常見方法:
- 暴力破解
- 字典破解(即 跑字典)
- 查表,反查表,跑彩虹表