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