Android中加密算法

2018-01-19  本文已影响24人  Jsonzhang

参考资料:http://www.cnblogs.com/whoislcj/p/5897533.html

Android中的加密算法可以分为两类:对称加密非对称加密

对称加密(DES、3DES、AES)

非对称加密(MD5、SHA、RSA、DSA)

Base64

Base64其实就是将数据进行base64编码传输,不算什么加密算法。

异或加密

原理:某个值异或一个数2次后,得到是本身
异或运算中,如果某个字符(或数值)x 与 一个数值m 进行异或运算得到y,则再用y 与 m 进行异或运算就可以还原为 x ,因此应用这个原理可以实现数据的加密解密功能。

//固定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;
}

//测试
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;
 }

//测试
byte[] bytes = encrypt("whoislcj".getBytes());//加密
String str1 = new String(decrypt(bytes));//解密
上一篇 下一篇

猜你喜欢

热点阅读