DES加密解密

常见对称加密算法介绍

  • 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;
    }

 

上一篇:C#加密解密类


下一篇:AES加密算法