Android APP開發 熟悉幾種常見的加密演算法(MD5,SHA1,RSA)等

今天簡單介紹一下Android App開發,幾種常見的加密解密演算法,此文章為總結文章,可用於面試使用,趕緊收藏吧~

一般金融公司面試會問冠以加密解密的比較多些。

我們分為幾部分講起:

一、常見編碼BASE64和URL編碼

  1. URL編碼:Htttp協議中請求的Url不支持中文和特殊的字元(如&?),所以需要對URL進行編碼和解碼,編碼使用的是URLENCODE,解碼使用的是URLDECODE。

  2. 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把鑰匙通常是通過程序生成的,不能自己指定。特點是:加密過程慢一些,但是安全係數要高。

加密和解密的規則是:公鑰加密只能和私鑰進行解密。其他人即使劫持了數據但是沒有公鑰,也無法界面。

Advertisements

你可能會喜歡