Android中AES加密和解密

 /**
     * deEncryption method.
     *
     * @param data
     * @param key
     * @param iv
     * @return
     * @throws Exception
     */
  public static String desEncrypt(String data, String key, String iv) throws Exception {
        byte[] encrypted = new BASE64Decoder().decodeBuffer(data);
        Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
        SecretKeySpec keySpec = new SecretKeySpec(key.getBytes(), "AES");
        IvParameterSpec ivParameterSpec = new IvParameterSpec(iv.getBytes());
        cipher.init(Cipher.DECRYPT_MODE, keySpec, ivParameterSpec);

        byte[] original = cipher.doFinal(encrypted);
        String originalString = new String(original);

        return originalString;
    }

    /**
     * encryption method.
     * @param key        随机生成的aesKey加密因子
     * @param initVector
     * @param value      the data to be encrypted.
     * @return
     */
    public static String encrypt(String key, String initVector, String value) {
        try {
            IvParameterSpec iv = new IvParameterSpec(initVector.getBytes("UTF-8"));
            SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");

            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7PADDING");
            cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);

            byte[] encrypted = cipher.doFinal(value.getBytes());
            System.out.println("encrypted string: "
                    + new BASE64Encoder().encode(encrypted));

            return new BASE64Encoder().encode(encrypted);
        } catch (Exception ex) {
            ex.printStackTrace();
        }

        return null;

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值