android 数据加密AES
来源:互联网 发布:mac 安装python 编辑:程序博客网 时间:2024/06/05 01:03
AES是目前对称加密中最流行算法之一。随着大数据越来越重要,信息安全随之人们开始关注起来。废话不多说。讲一讲AES加密。
- public static byte[] encrypt(String content, String password) {
- try {
- KeyGenerator kgen = KeyGenerator.getInstance("AES"); // 创建AES的Key生产者
- kgen.init(128, new SecureRandom(password.getBytes())); //在安全性要求比较高的场合,应当使用//SecureRandom
- SecretKey secretKey = kgen.generateKey(); //生成一个密钥
- byte[] enCodeFormat = secretKey.getEncoded(); // 返回编码格式的密钥
- SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); // 转换为AES专用密钥
- Cipher cipher = Cipher.getInstance("AES");// 创建密码器
- byte[] byteContent = content.getBytes("utf-8");
- cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化加密模式
- byte[] result = cipher.doFinal(byteContent); //加密
- return result;
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (NoSuchPaddingException e) {
- e.printStackTrace();
- } catch (InvalidKeyException e) {
- e.printStackTrace();
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- } catch (IllegalBlockSizeException e) {
- e.printStackTrace();
- } catch (BadPaddingException e) {
- e.printStackTrace();
- }
- return null;
- }
下面是解密的过程基本都差不多
- public static byte[] decrypt(byte[] content, String password) {
- try {
- KeyGenerator kgen = KeyGenerator.getInstance("AES");
- kgen.init(128, new SecureRandom(password.getBytes()));
- SecretKey secretKey = kgen.generateKey();
- byte[] enCodeFormat = secretKey.getEncoded();
- SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES");
- Cipher cipher = Cipher.getInstance("AES");// 创建密码器
- cipher.init(Cipher.DECRYPT_MODE, key);// 初始化
- byte[] result = cipher.doFinal(content);
- return result; // 加密
- } catch (NoSuchAlgorithmException e) {
- e.printStackTrace();
- } catch (NoSuchPaddingException e) {
- e.printStackTrace();
- } catch (InvalidKeyException e) {
- e.printStackTrace();
- } catch (IllegalBlockSizeException e) {
- e.printStackTrace();
- } catch (BadPaddingException e) {
- e.printStackTrace();
- }
- return null;
- }
主要是种子一定是一样的。才能正确的加解密。而且如果是用字节转换为字符串形式加解密的话,会报异常。这里就要用到二进制转换为16进制的,
然后间接转换为2进制的解密。
阅读全文
0 0
- android 数据加密AES
- android 使用Aes加密数据
- android数据加密(二)AES加密
- Android数据加密之Aes加密
- Android数据加密DES、3DES、AES
- Android 数据加密之RSA + AES
- Android数据安全之AES加密
- Android本地数据AES加密,使用AndroidKeyStore
- Android数据加密之RSA+AES混合加密
- Android AES加密
- Android AES加密实现
- AES Android 加密
- 7、Android AES加密
- Android之AES加密
- android AES加密
- Android AES 加密,解密
- ios android aes 加密
- android AES加密 --java
- Ubuntu 终端命令的使用(初学者入门)
- 国内外数字信号处理经典教材
- [Java算法分析与设计]二叉树非递归实现遍历
- 5-18 二分法求多项式单根 (20分)
- [POJ]1895 Bring Them There 网络流 动态加层
- android 数据加密AES
- Hive及相关功能使用文档
- C++中的IPv6网络程序
- Java使用BigDecimal进行精确计算
- weblogic 12.1.3.0.0 上调用webservice接口报错
- 字符串匹配——KMP
- python3.x中urllib和urllib2包的更新
- 机器学习笔记之逻辑回归的正则化
- css布局