Android中加密算法

參考資料:http://www.cnblogs.com/whoislcj/p/5897533.html

Android中的加密算法可以分為兩類:對(duì)稱加密非對(duì)稱加密

對(duì)稱加密(DES、3DES、AES)

  • 概念
    對(duì)稱加密算法中,發(fā)送方將明文和加密密匙經(jīng)過特殊加密算法處理后,使其形成變成復(fù)雜的密文后發(fā)送出去。接受方用同樣的密匙、同樣加密算法的逆算法對(duì)密文進(jìn)行解密。傳統(tǒng)的DES加密算法只有56位密匙,最新AES技術(shù)擁有128位密匙。大大提高了安全性。

  • 優(yōu)點(diǎn):算法公開、計(jì)算量小、加密速度快、加密效率高

  • 缺點(diǎn):發(fā)送方和接受方擁有同樣的密匙,安全問題得不到保證;管理密匙會(huì)成為額外的負(fù)擔(dān);可逆。

非對(duì)稱加密(MD5、SHA、RSA、DSA)

  • 概念
    非對(duì)稱加密算法中,發(fā)送方和接收方需要使用完全不同但又完全匹配的一對(duì)鑰匙即 公匙私匙來加密和解密數(shù)據(jù)。如果發(fā)送方只想要接收方解密數(shù)據(jù),發(fā)送方就需要先拿到接收方的公匙,并且發(fā)送方并不知道接收方的私匙。
  • 優(yōu)點(diǎn):安全,不可逆

Base64

Base64其實(shí)就是將數(shù)據(jù)進(jìn)行base64編碼傳輸,不算什么加密算法。

異或加密

原理:某個(gè)值異或一個(gè)數(shù)2次后,得到是本身
異或運(yùn)算中,如果某個(gè)字符(或數(shù)值)x 與 一個(gè)數(shù)值m 進(jìn)行異或運(yùn)算得到y(tǒng),則再用y 與 m 進(jìn)行異或運(yùn)算就可以還原為 x ,因此應(yīng)用這個(gè)原理可以實(shí)現(xiàn)數(shù)據(jù)的加密解密功能。

//固定key的方式
public byte[] encrypt(byte[] bytes) {
        int len = bytes.length;
        int key = 0x12;
        for (int i = 0; i < len; i++) {
            bytes[i] ^= key;
        }
        return bytes;
}

//測(cè)試
byte[] bytes = encrypt("whoislcj".getBytes());//加密
String str1 = new String(encrypt(bytes));//解密
//不固定 (加密)
public byte[] encrypt(byte[] bytes) {
        int len = bytes.length;
        int key = 0x12;
        for (int i = 0; i < len; i++) {
            bytes[i] = (byte) (bytes[i] ^ key);
            key = bytes[i];
        }
        return bytes;
    }

//解密
 public byte[] decrypt(byte[] bytes) {
        int len = bytes.length;
        int key = 0x12;
        for (int i = len - 1; i > 0; i--) {
            bytes[i] = (byte) (bytes[i] ^ bytes[i - 1]);
        }
        bytes[0] = (byte) (bytes[0] ^ key);
        return bytes;
 }

//測(cè)試
byte[] bytes = encrypt("whoislcj".getBytes());//加密
String str1 = new String(decrypt(bytes));//解密
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 這篇文章主要講述在Mobile BI(移動(dòng)商務(wù)智能)開發(fā)過程中,在網(wǎng)絡(luò)通信、數(shù)據(jù)存儲(chǔ)、登錄驗(yàn)證這幾個(gè)方面涉及的加密...
    雨_樹閱讀 3,039評(píng)論 0 6
  • 隨著對(duì)于安全度的不斷要求,對(duì)于數(shù)據(jù)加解密與破解之間的斗爭(zhēng),加解密的方式也在不斷發(fā)生著變化,來看看現(xiàn)在流行的一些加解...
    zhouhao_180閱讀 2,228評(píng)論 1 12
  • 概述 之前一直對(duì)加密相關(guān)的算法知之甚少,只知道類似DES、RSA等加密算法能對(duì)數(shù)據(jù)傳輸進(jìn)行加密,且各種加密算法各有...
    Henryzhu閱讀 3,214評(píng)論 0 14
  • 在開發(fā)應(yīng)用過程中,客戶端與服務(wù)端經(jīng)常需要進(jìn)行數(shù)據(jù)傳輸,涉及到重要隱私安全信息時(shí),開發(fā)者自然會(huì)想到對(duì)其進(jìn)行加密,即使...
    閑庭閱讀 3,432評(píng)論 0 11
  • 我吐槽的,每天孩子睡覺了,能不能收拾一下衣服,洗洗衣服,收拾一下家里,坐著看手機(jī),看電影,嘴上只會(huì)說卻不動(dòng)彈,什么...
    惡魔的詠嘆閱讀 153評(píng)論 0 0

友情鏈接更多精彩內(nèi)容