资源简介
适用于Android、Java、Web端使用的AES、RSA加密工具类

代码片段和文件信息
import java.util.UUID;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
/**
* AES工具类,密钥必须是16位字符串
*/
public class AESUtils {
/**偏移量必须是16位字符串*/
private static final String IV_STRING = “16-Bytes--String“;
/**
* 默认的密钥
*/
public static final String DEFAULT_KEY = “1bd83b249a414036“;
/**
* 产生随机密钥(这里产生密钥必须是16位)
*/
public static String generateKey() {
String key = UUID.randomUUID().toString();
key = key.replace(“-“ ““).substring(0 16);// 替换掉-号
return key;
}
public static String encryptData(String key String content) {
byte[] encryptedBytes = new byte[0];
try {
byte[] byteContent = content.getBytes(“UTF-8“);
// 注意,为了能与 iOS 统一
// 这里的 key 不可以使用 KeyGenerator、SecureRandom、SecretKey 生成
byte[] enCodeFormat = key.getBytes();
SecretKeySpec secretKeySpec = new SecretKeySpec(enCodeFormat “AES“);
byte[] initParam = IV_STRING.getBytes();
IvParameterSpec ivParameterSpec = new IvParameterSpec(initParam);
// 指定加密的算法、工作模式和填充方式
Cipher cipher = Cipher.getInstance(“AES/CBC/PKCS5Padding“);
cipher.init(Cipher.ENCRYPT_MODE secretKeySpec ivParameterSpec);
encryptedBytes = cipher.doFinal(byteContent);
// 同样对加密后数据进行 base64 编码
return base64Utils.encode(encryptedBytes);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static String decryptData(String key String content) {
try {
// base64 解码
byte[] encryptedBytes = base64Utils.decode(content);
byte[] enCodeFormat = key.getBytes();
SecretKeySpec secretKey = new SecretKeySpec(enCodeFormat “AES“);
byte[] initParam = IV_STRING.getBytes();
IvParameterSpec ivParameterSpec = new IvParameterSpec(initParam);
Cipher cipher = Cipher.getInstance(“AES/CBC/PKCS5Padding“);
cipher.init(Cipher.DECRYPT_MODE secretKey ivParameterSpec);
byte[] result = cipher.doFinal(encryptedBytes);
return new String(result “UTF-8“);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public static void main(String[] args) {
String plainText = AESUtils.decryptData(“F431E6FF9051DA07“ “q8jHYk6LSbwC2K4zmr/wRZo8mlH0VdMzPEcAzQadTCpSrPQ/ZnTmuIvQxiLOnUXu“);
System.out.println(“aes加密后: “ + plainText);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-02-28 16:41 RSA+AES加密工具类\
目录 0 2017-02-28 16:41 RSA+AES加密工具类\lib\
文件 4364 2016-11-04 15:31 RSA+AES加密工具类\lib\javaba
目录 0 2017-02-28 16:41 RSA+AES加密工具类\src\
文件 2805 2017-02-28 15:53 RSA+AES加密工具类\src\AESUtils.java
文件 3212 2017-01-05 19:53 RSA+AES加密工具类\src\ba
文件 9718 2017-02-28 10:50 RSA+AES加密工具类\src\RSAUtils.java
相关资源
- Java 文件加密传输
- C#和Java实现互通的RSADES加解密算法
- JS实现AES-GCM加密,java实现AES-GCM解密。
- RSA数字签名算法的具体实现
- Rsa非对称加密的Java实现和举例更新版
- 完美使用RSA2结合AES对数据进行加密兼
- Android RSA加密jar包
- RSA算法JAVA公钥加密,C#私钥解密
- 支付宝RSA加解密工具
- aes加密算法 五种模式
- RSA加密登录示例278136
- Android RSA加密解密文件
- Android实现登录界面和功能
- RSA加密传输AES的key和iv js加密 java解
- RSA加密解密 JS加密 JAVA解密
- C# RSA加密、支持JAVA格式公钥私钥
- 基于JAVA的RSA文件加密软件的设计与实
- RSA加密解密JS加密JAVA解密
- javaweb使用rsa加密解密jar包
- 高性能AES256对称加解密,兼容Java、
- BouncyCastleProvider jar包
- RSA加解密源码及测试代码完整java工程
- JAVA的综合加解密聊天程序,附带文档
- Java使用winzipaes对zip文件的操作支持中
- MD5和RSA加密算法Java完成实现
- RSA前台加密后台解密Demo
- Java非对称加密源代码(RSA)-测试包
- android数据传输RSA加密DEMO
- javaRSA加密C++RSA解密
- android加密
评论
共有 条评论