import com.qiniu.util.Base64; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import java.security.spec.AlgorithmParameterSpec;
/**
- AES 是一种可逆加密算法,对用户的敏感信息加密处理
- 对原始数据进行AES加密后,在进行Base64编码转化;
- @author
- @time 2017/11/27 15:54
- 填充:zeropadding 128位
- 模式:CBC
- 密码:Kbj.543Lbwb5kNbP
- 偏移量:B*L032Ykls9-g858
/ public class AesCBCUtil { //私钥 AES固定格式为128/192/256 bits.即:16/24/32bytes public static final String APP_LOGIN_IN_KEY = "Kbj.543Lbwb5kNbP"; //初始化向量参数,AES 为16bytes public static final String GIV = "BL032Ykls9-g858";
/**
* CBC
*
* @param data
* @param key
* @return
* @throws Exception
*/
public static String encrypt(String data, String key) {
复制代码
// Logger.getInstace().i("[Data-Original]", data); try { Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); int blockSize = cipher.getBlockSize();
byte[] dataBytes = data.getBytes();

该博客探讨了使用AES加密中文字符串时遇到的问题,主要涉及AES的CBC模式、NoPadding填充以及Base64编码。在加密和解密过程中,由于编码处理不当导致解密后的中文出现乱码。示例代码提供了加密和解密的方法,但存在潜在的编码错误。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



