對稱加密算法
加密過程:
將明文分紅N個組,而後對各個組進行加密,造成各自的密文,最後把全部的分組密文進行合併,造成最終的密文。
優勢:
算法公開、計算量小、加密速度快、加密效率高
缺點:
交易雙方都使用一樣鑰匙,安全性得不到保證
密鑰管理困難,尤爲是在分佈式網絡中
經常使用算法:
DES、3DES(TripleDES)、AES、RC二、RC四、RC5和Blowfish算法
非對稱加密算法
使用過程:
乙方生成兩把密鑰(公鑰和私鑰)
甲方獲取乙方的公鑰,而後用它對信息加密。
乙方獲得加密後的信息,用私鑰解密,乙方也可用私鑰加密字符串
甲方獲取乙方私鑰加密數據,用公鑰解密
優勢:
更安全,密鑰越長,它就越難破解
缺點:
加密速度慢
經常使用算法:
RSA、Elgamal、揹包算法、Rabin、D-H、ECC(橢圓曲線加密算法)數組
對稱 (des、3des、aes)安全
DES:
DES算法 再大多運用在 如信用卡持卡人的PIN的加密傳輸,IC卡與POS間的雙向認證、金融交易數據包的MAC校驗等領域
DES算法的入口參數有三個:Key、Data、Mode。
Key爲8個字節共64位,是DES算法的工做密鑰;
Data也爲8個字節64位,是要被加密或被解密的數據;
Mode爲DES的工做方式,有兩種:加密或解密。
DES算法是這樣工做的:
如Mode爲加密,則用Key 去把數據Data進行加密, 生成Data的密碼形式(64位)做爲DES的輸出結果
如Mode爲解密,則用Key去把密碼形式的數據Data解密,還原爲Data的明碼形式(64位)做爲DES的輸出結果。
在通訊網絡的兩端,雙方約定一致的Key網絡
3DES
在 DES 的基礎上,使用三重數據加密算法,對數據進行加密,這樣來講,破解的機率就小了不少
使用 3 條 56 位的密鑰對數據進行三次加密。3DES是 DES 向 AES 過渡的加密算法
K一、K二、K3決定了算法的安全性,若三個密鑰互不相同,本質上就至關於用一個長爲168位的密鑰進行加密。.它在對付強力攻擊時是比較安全的。若數據對安 全性要求不那麼高
K1能夠等於K3。這種狀況下密鑰的有效長度爲112位分佈式
AES
高級加密標準,是下一代的加密算法標準,速度快,安全級別高
AES算法基於排列和置換運算。排列是對數據從新進行安排,置換是將一個數據單元替換爲另外一個,AES是一個迭代的、對稱密鑰分組的密碼,它可使用12八、 192和256位密鑰, 而且用128位(16字節)分組加密和解密數據
函數
算法 Key 位數 是否可逆 其它
MD5 沒有Key, 有區別16位和32位, 不可逆 (無)
SHA (?) (?) 不可逆 (無)
RSA 有(公Key,私KEY) (?) 可逆 公、私Key採用不一樣的加密算法
DES3 有 (?) 可逆 (無)
AES 有 (?) 可逆 (無)
BASE64 沒有KEY (?) 可逆 (無)編碼
哈希函數:MD5,SHA 是沒有密鑰的,至關與指紋的概念,所以也是不可逆的;
md5是128位的,SHA有不一樣的算法,有128,256等位。。。如SHA-256,SHA-384
Base64,這更加不屬於加密算法的範圍了,它只是將byte[]數組進行了轉換,爲何要轉換呢?就是由於不少加密後的密文後者一些特殊的byte[]數組須要顯示出來,或者須要進行傳遞(電子郵件),可是直接轉換就會致使不少不可顯示的字符,會丟失一些信息,所以就轉換位Base64編碼,這些都是可顯示的字符。因此轉換後長度會增長。它是可逆的
加密
再就是 3DES,DES 這纔是加密算法,所以也是可逆的,加解密須要密鑰,也就是你說的keyspa
最後是 RSA ,這是公鑰密碼,也就是加密和解密密鑰不一樣,也是可逆的。3d
非對稱 (數字證書ca&https)
非對稱加密DH爲了更好的區分明文和密文,用【AA】表明AA被加密,AA 表明正常未加密
client 發出請求
server 收到請求,並本身生成一對密鑰,即 公鑰S 和 私鑰S
server 把生成的 公鑰S 傳遞給 client (除了 公鑰S ,還有不少額外信息)
client 收到 公鑰S 後進行判斷,若無效,彈出警告,不然生成一串隨機數,咱們稱之爲 私鑰C ,而後 client 用 server 傳過來的 公鑰S 對該隨機數加密,造成【私鑰C】
client 把【私鑰C】傳遞給 server
server 收到【私鑰C】,用 私鑰S 把【私鑰C】解密成 私鑰C,而後把須要傳遞的數據用 私鑰C 進行加密
server 把【數據】傳遞給 client
client 收到【數據】,用 私鑰C 解密,完成一波收割
對稱加密是指加密和解密用一致的密鑰,特色是快
非對稱加密是指密鑰區分公鑰和私鑰,公鑰加密,私鑰解密(私鑰比如惟逐個把鑰匙,公鑰比如鎖,鑰匙只有一把,但鎖能夠有不少,被鎖頭鎖上的數據全天下只有一把私鑰才能 單開),特色是安全,可是慢
這回理解了吧,上述方式缺點是 慢,因此 https 的流程綜合了對稱加密和非對稱加密的優勢,利用非對稱加密的安全性來加密那一串隨機數--私鑰C,利用對稱加密的快捷性來加
密報文,整體來講就是把真正加密解密的密鑰(私鑰C)用公鑰S和私鑰S來加密,很靈性啊。
利弊
aes/des加密速度快,適合大量數據,des容易破解,通常用3重des,後來又出現了更快更安全的aesrsa是公鑰加密,速度慢,只能處理少許數據,優勢是公鑰即便在不安全的網絡上公開,也能保證安全常見狀況是雙方用rsa協商出一個密鑰後經過aes/3des給數據加密