常见对称加密算法介绍
- DES:企业级开发使用频率很高,Data Encryption Standard数据加密标准
- AES:Advanced Encryption Standard,高级数据加密标准,比DES破解难度大
- 底层机制:操作的不是字符,操作的是二进制(字符二进制显示成矩阵,矩阵变化)
DES加密
- DES:Data Encryption Standard数据加密标准
- 掌握参考api文档实现加密算法
- 对称加密三部曲:
* 1.创建cipher对象,cipher加密算法核心类
* 2.初始化加密/解密模式
* 3.加密/解密
- 加密算法、安全领域大量使用getInstance(参数) 方法
public static String encrypt(String str, String key) { try { Cipher cipher = Cipher.getInstance(DCT); Key keyPwd = new SecretKeySpec(key.getBytes(), DES); IvParameterSpec iv = new IvParameterSpec(key.getBytes()); cipher.init(Cipher.ENCRYPT_MODE, keyPwd, iv); byte[] bytes = cipher.doFinal(str.getBytes()); return Base64.encode(bytes); } catch (Exception e) { e.printStackTrace(); Log.e(TAG, "encrypt: " + e.getLocalizedMessage()); } return null; }
DES解密
public static String decryp(String str, String key) { try { Cipher cipher = Cipher.getInstance(DCT); Key keyPwd = new SecretKeySpec(key.getBytes(), DES); IvParameterSpec iv = new IvParameterSpec(key.getBytes()); cipher.init(Cipher.DECRYPT_MODE, keyPwd, iv); byte[] bytes = cipher.doFinal(Base64.decode(str)); return new String(bytes); } catch (Exception e) { e.printStackTrace(); Log.e(TAG, "decryp: " + e.getLocalizedMessage()); } return null; }