Android常用加密代码实现
来源:互联网 发布:论述java异常处理机制 编辑:程序博客网 时间:2024/05/21 07:53
DES加密的工具类:
public class DESUtil { /** * 根据指定的密钥加密字符串 * @param encryptString 需要加密的字符串 * @param encryptKey 密钥 * @return 加密后的字符串 * @throws Exception */ public static String encryptDES(String encryptString, String encryptKey) throws Exception { // 实例化IvParameterSpec对象,使用指定的初始化向量,初始化向量根据key生成 IvParameterSpec zeroIv = new IvParameterSpec(encryptKey.getBytes("ASCII")); // 实例化SecretKeySpec类,根据字节数组来构造SecretKey SecretKeySpec key = new SecretKeySpec(encryptKey.getBytes(), "DES"); // 创建密码器 Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); // 用秘钥初始化Cipher对象 cipher.init(Cipher.ENCRYPT_MODE, key, zeroIv); // 执行加密操作 byte[] encryptedData = cipher.doFinal(encryptString.getBytes()); return Base64.encodeToString(encryptedData, Base64.DEFAULT); } /** * 根据指定的密钥对字符串解密 * @param decrypString 需要解密的字符串 * @param decryptKey 密钥 * @return 解密后的字符串 * @throws Exception */ public static String decryptDES(String decrypString, String decryptKey) throws Exception { byte[] byteMi = Base64.decode(decrypString, Base64.DEFAULT); // 实例化IvParameterSpec对象,使用指定的初始化向量 IvParameterSpec zeroIv = new IvParameterSpec(decryptKey.getBytes("ASCII")); // 实例化SecretKeySpec类,根据字节数组来构造SecretKey SecretKeySpec key = new SecretKeySpec(decryptKey.getBytes(), "DES"); // 创建密码器 Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); // 用秘钥初始化Cipher对象 cipher.init(Cipher.DECRYPT_MODE, key, zeroIv); // 执行解密操作 byte[] decryptedData = cipher.doFinal(byteMi); return new String(decryptedData); }}
AES加密工具类:
public class AESUtil { public static byte[] encrypt(String 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");// 创建密码器 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 (InvalidKeyException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } return null; }
0 0
- Android常用加密代码实现
- java常用加密方式代码实现
- iOS代码加密常用加密方式
- iOS代码加密常用加密方式
- Android加密方式的实现代码MD5-RSA-DES
- android客户端加密代码
- android客户端加密代码
- Android SDK代码加密
- android AES加密代码
- java常用加密方式实现
- Android SHA加密实现
- Android SHA1加密实现
- Android AES加密实现
- Android 实现MD5加密
- Android DES加密实现
- android RSA 加密实现
- AES加密解密代码实现
- JAVA SHA256加密代码实现
- 一说就懂的AWS Cloudformation
- JAVA 8:健壮、易用的时间/日期API
- 关于Android Studio里的Gradle,你所需要知道的都在这里了
- Java web 工作中遇到的一些问题
- 2016.1.26个人总结
- Android常用加密代码实现
- PHP编码规范/PSR-3
- STLINK和JLINK使用SWD四线调试下载STM32
- root技术背后android手机内核提取及逆向分析
- 【KVM2】xauth:(stdin):1:bad display name "xxx:1" in "add" command解决
- 前端工程师使用node.js打造日记社区教程之序章
- Android开发学习之路--MAC下Android Studio开发环境搭建
- 网站日志分析工具汇总
- Windows文件操作