package cn.howie.util;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;public class DESUtil {private static byte[] key = "你的key".getBytes();//解密方式如下://new String(DESUtil.decrypt(Base64.decode("pKkeY+XC8zPKjzPloikX2H8HpfPcztNE", 0)))/** * 加密函数 * @param data 加密数据 * @param key  密钥 * @return 返回加密后的数据 */public static byte[] encrypt(byte[] data) {try {// DES算法要求有一个可信任的随机数源SecureRandom sr = new SecureRandom();// 从原始密钥数据创建DESKeySpec对象DESKeySpec dks = new DESKeySpec(key);// 创建一个密匙工厂,然后用它把DESKeySpec转换成// 一个SecretKey对象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey secretKey = keyFactory.generateSecret(dks);// using DES in ECB modeCipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");// 用密匙初始化Cipher对象cipher.init(Cipher.ENCRYPT_MODE, secretKey, sr);// 执行加密操作byte encryptedData[] = cipher.doFinal(data);return encryptedData;} catch (Exception e) {e.printStackTrace();}return null;}/** * 解密函数 * @param data 解密数据 * @param key 密钥 * @return 返回解密后的数据 */public static String decrypt(byte[] data) {try {// DES算法要求有一个可信任的随机数源SecureRandom sr = new SecureRandom();// byte rawKeyData[] = /* 用某种方法获取原始密匙数据 */;// 从原始密匙数据创建一个DESKeySpec对象DESKeySpec dks = new DESKeySpec(key);// 创建一个密匙工厂,然后用它把DESKeySpec对象转换成// 一个SecretKey对象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey secretKey = keyFactory.generateSecret(dks);// using DES in ECB modeCipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");// 用密匙初始化Cipher对象cipher.init(Cipher.DECRYPT_MODE, secretKey, sr);// 正式执行解密操作byte decryptedData[] = cipher.doFinal(data);return new String(decryptedData);} catch (Exception e) {e.printStackTrace();}return null;}}
  

加密后要先用base64再加密后再传输,接到加密后的字符后先base64解密再用des解密,否则的话抛出异常


更多相关文章

  1. Android(安卓)RSA 公钥加密、解密
  2. 了解Context
  3. 播放记录的SQLite数据库实现
  4. SharePreference封装使用
  5. Android(安卓)通过Intent 传递对象
  6. 自定义对话框 位置 大小等
  7. Android-HttpsURLConnectionHelp工具类
  8. Android(安卓)zip文件压缩解压缩
  9. Andriod中绘(画)图----Canvas的使用详解

随机推荐

  1. Android之TextView设置String文本颜色
  2. Android TextView字体颜色等样式详解
  3. 「横竖屏」 「分屏」 「虚拟按键」
  4. Gradle-jar-aar
  5. 在Android中使用GIF图片
  6. Android 主动获取电量的方法
  7. Android 网络连接处理 学习笔记
  8. 做android 开发遇到的问题及解决办法记录
  9. Android Sqlite Failed to open database
  10. android学习——activity的生命周期