Android APP開發 熟悉幾種常見的加密演算法(MD5,SHA1,RSA)等
今天簡單介紹一下Android App開發,幾種常見的加密解密演算法,此文章為總結文章,可用於面試使用,趕緊收藏吧~
一般金融公司面試會問冠以加密解密的比較多些。
我們分為幾部分講起:
一、常見編碼BASE64和URL編碼
URL編碼:Htttp協議中請求的Url不支持中文和特殊的字元(如&?),所以需要對URL進行編碼和解碼,編碼使用的是URLENCODE,解碼使用的是URLDECODE。
Base編碼:可以將一些二進位數據對象轉換為字元串,主要用於在http傳輸中將一些比較大的比如而今組織數據編碼為字元串。適合放入url進行傳遞,而且是具有非明文行。
二、數字摘要、加密和解密
1.數字摘要:是指通過演算法將場數據變為端數據,通常用於標識數據的唯一性,是否被修改,常用的加密演算法有md5,和shal1,如安卓APP的簽名,也是用這兩種演算法計算的。
Advertisements
2.MD5加密:md5用於具有不可逆性,也用來作為密碼加密,並且通常情況下為了讓加密過程變得不可預測,我們會進行加鹽操作。
3.SHAL1加密:shal1也不可逆,比md5長度更長,所以更安全,但是加密的效率比md5要慢一些,如文件的秒傳功能,以及相同的V4包衝突都是根據文件的shal1值進行比對的。
4.加密和解密:
4.1對稱加密:秘鑰可以自己指定,只有一把秘鑰,如果秘鑰暴露,文件就會暴露,常見的對稱加密演算法有DES演算法,和AES演算法,特點是加密的速度很快,但是缺點是安全性較低,因為只要秘鑰暴露,數據就可以被解開。
4.2非對稱加密:有兩把鑰匙(密鑰對),公鑰和私鑰,公鑰的話給別人,私鑰自己保留。
Advertisements
常見的非對稱加密演算法是RSA演算法,2把鑰匙通常是通過程序生成的,不能自己指定。特點是:加密過程慢一些,但是安全係數要高。
加密和解密的規則是:公鑰加密只能和私鑰進行解密。其他人即使劫持了數據但是沒有公鑰,也無法界面。