加密的種類
MD5 AES RSA
加密的目的
加密的目的是為了防止數(shù)據(jù)的泄漏背率,在client和server之間傳遞的數(shù)據(jù)的時候租幕,內(nèi)容可能被三方截獲誉己。為了防止第三方解讀侨舆、篡改數(shù)據(jù)戒职,產(chǎn)生了各種各樣的加密技術(shù)栗恩。
MD5
MD5算法具有以下特點:
1、壓縮性:任意長度的數(shù)據(jù)洪燥,算出的MD5值長度都是固定的128bit磕秤。
2乳乌、容易計算:從原數(shù)據(jù)計算出MD5值很容易。
3市咆、抗修改性:對原數(shù)據(jù)進行任何改動汉操,哪怕只修改1個字節(jié),所得到的MD5值都有很大區(qū)別蒙兰。
4磷瘤、強抗碰撞:已知原數(shù)據(jù)和其MD5值,想找到一個具有相同MD5值的數(shù)據(jù)(即偽造數(shù)據(jù))是非常困難的搜变。
RSA
非對稱加密采缚,公鑰加密,私鑰解密挠他,反之亦然扳抽。由于需要大數(shù)的乘冪求模等算法,運行速度慢殖侵,不易于硬件實現(xiàn)贸呢。通常私鑰長度有512bit,1024bit愉耙,2048bit贮尉,4096bit,長度越長朴沿,越安全猜谚,但是生成密鑰越慢,加解密也越耗時赌渣。
既然是加密魏铅,那肯定是不希望別人知道我的消息,所以只有我才能解密坚芜,所以可得出公鑰負責加密览芳,私鑰負責解密;同理鸿竖,既然是簽名沧竟,那肯定是不希望有人冒充我發(fā)消息,只有我才能發(fā)布這個簽名缚忧,所以可得出私鑰負責簽名悟泵,公鑰負責驗證。
AES
對稱加密闪水,密鑰最長只有256個bit糕非,執(zhí)行速度快,易于硬件實現(xiàn)。由于是對稱加密朽肥,密鑰需要在傳輸前通訊雙方獲知禁筏。
基于以上特點,通常使用RSA來首先傳輸AES的密鑰給對方衡招,然后再使用AES來進行加密通訊篱昔。
現(xiàn)在比較流行的加密方案是組合型的,上面三種方法的組合始腾,MD5做簽名旱爆,RSA+AES加密數(shù)據(jù)。
利用RSA的pk對AES的key做加密窘茁,然后發(fā)送給服務(wù)器;服務(wù)器利用SK解密得到AES的key脆烟。之后所有的數(shù)據(jù)都用AES做加密山林,所以服務(wù)器也能夠正常解密。