HTTPS加密傳輸使用的加密和HASH算法
非對稱加密算法:RSA,DSA/DSS
非對稱加密: 加密和解密的密鑰是不同的, 分為公鑰和密鑰。
私鑰只有一份,保存在收信人手中, 不會在通信中傳輸, 不會被泄露。公鑰可以有多份, 保存在寫信人手中。
假設客戶端A要與服務器B進行通信。A用公鑰加密, B用私鑰解密。
即使上述過程中公鑰和通信內容都被截獲, 由於沒有服務器B的私鑰, 第三方也無法解開通信內容。
對稱加密算法:AES,RC4,3DES
加密和解密的密鑰是相同的。
假設客戶端A與服務器B進行通信。A和B用同一個密鑰進行加密解密。
風險:密鑰一旦被截獲, 通信內容就能夠被破解。
HASH算法:MD5,SHA1,SHA256
使用HASH算法校驗內容是否被篡改。
RSA 是一種公鑰密碼算法(非對稱加密)
加密算法:密文 = (明文^E) mod N,其中公鑰為{E,N},即”求明文的E次方的對 N 的余數“
解密算法:明文 = (密文^D) mod N,其中秘鑰為{D,N},即”求密文的D次方的對 N 的余數“
例:我們已知公鑰為{5,323},私鑰為{29,323},明文為300,請寫出加密和解密的過程:
加密:密文 = 123 ^ 5 mod 323 = 225 解密:明文 = 225 ^ 29 mod 323 = [[(225 ^ 5) mod 323] * [(225 ^ 5) mod 323] * [(225 ^ 5) mod 323] * [(225 ^ 5) mod 323] * [(225 ^ 5) mod 323] * [(225 ^ 4) mod 323]] mod 323 = (4 * 4 * 4 * 4 * 4 * 290) mod 323 = 123