Android实现CBC加解密
前言
CBC(Cipher-block chaining),即密码分组链接,是一种较为常用的加密模式。接下来介绍一下Android中实现CBC加解密的具体流程。
导入bcprov.jar
实现CBC加密需要用到bcprov.jar,百度网盘下载地址:
链接:https://pan.baidu.com/s/11l9HybOcizxzdaea2iiECQ
提取码:ijmz
AESCBCUtil.java
定义一个工具类AESCBCUtil,实现CBC加密、解密等方法:
package com.example.cbc;
import java.util.Locale;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.bouncycastle.util.encoders.Base64;
public class AESCBCUtil {
//密码
private static final String key = "aaaabbbbccccdddd";
//iv偏移量
private static final String iv = "0000000000000000";
/**
* 加密:对字符串进行加密,并返回十六进制字符串(hex)
*
* @param encryptStr 需要加密的字符串
* @return 加密后的十六进制字符串(hex)
*/
public static String encrypt(String encryptStr,String key,String iv) {
try {
IvParameterSpec ivParameterSpec = new IvParameterSpec(iv.getBytes("UTF-8"));
SecretKeySpec skeySpec = new SecretKeySpec(key.getBytes("UTF-8"), "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
cipher.init