Android DES加密工具
来源:互联网 发布:java程序员成长之路 编辑:程序博客网 时间:2024/05/01 23:45
public class DesUtil {/** * DES 默认key */private static String desKey;/** * DES解密 (采用默认key) * * @param desKey * @param dataSource * @throws IllegalBlockSizeException * @throws BadPaddingException * @throws InvalidKeyException * @throws NoSuchAlgorithmException * @throws NoSuchPaddingException * @throws InvalidKeySpecException * @throws UnsupportedEncodingException */public static String decode(String dataSource) throws Exception {if (dataSource != null) {// DES算法要求有一个可信任的随机数源byte rawKeyData[] = desKey.getBytes("UTF-8");// SecureRandom sr = new SecureRandom();// 从原始密匙数据创建一个DESKeySpec对象DESKeySpec dks = new DESKeySpec(rawKeyData);// 创建一个密匙工厂,然后用它把DESKeySpec对象转换成一个SecretKey对象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey key = keyFactory.generateSecret(dks);// Cipher对象实际完成解密操作Cipher cipher = Cipher.getInstance("DES");// 用密匙初始化Cipher对象cipher.init(Cipher.DECRYPT_MODE, key);// 正式执行解密操作byte decryptedData[] = cipher.doFinal(Base64.decode(dataSource, Base64.DEFAULT));return new String(decryptedData);}return null;}/** * DES解密 * * @param desKey * @param dataSource * @throws IllegalBlockSizeException * @throws BadPaddingException * @throws InvalidKeyException * @throws NoSuchAlgorithmException * @throws NoSuchPaddingException * @throws InvalidKeySpecException * @throws UnsupportedEncodingException */public static String decode(String desKey, String dataSource) throws Exception {if (dataSource != null && desKey != null) {// DES算法要求有一个可信任的随机数源byte rawKeyData[] = desKey.getBytes("UTF-8");// SecureRandom sr = new SecureRandom();// 从原始密匙数据创建一个DESKeySpec对象DESKeySpec dks = new DESKeySpec(rawKeyData);// 创建一个密匙工厂,然后用它把DESKeySpec对象转换成一个SecretKey对象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey key = keyFactory.generateSecret(dks);// Cipher对象实际完成解密操作Cipher cipher = Cipher.getInstance("DES");// 用密匙初始化Cipher对象cipher.init(Cipher.DECRYPT_MODE, key);// 正式执行解密操作byte decryptedData[] = cipher.doFinal(Base64.decode(dataSource, Base64.DEFAULT));return new String(decryptedData);}return null;}/** * DES加密 (采用默认key) * * @param desKey * @param dataSource * @throws InvalidKeyException * @throws NoSuchAlgorithmException * @throws IllegalBlockSizeException * @throws BadPaddingException * @throws NoSuchPaddingException * @throws InvalidKeySpecException * @throws UnsupportedEncodingException */public static String encode(Object dataSource) throws Exception {if (dataSource != null) {byte rawKeyData[] = desKey.getBytes("UTF-8");// DES算法要求有一个可信任的随机数源// SecureRandom sr = new SecureRandom();// 从原始密匙数据创建一个DESKeySpec对象DESKeySpec dks = new DESKeySpec(rawKeyData);// 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey key = keyFactory.generateSecret(dks);// Cipher对象实际完成加密操作Cipher cipher = Cipher.getInstance("DES");// 用密匙初始化Cipher对象cipher.init(Cipher.ENCRYPT_MODE, key);// 现在,获取数据并加密String str = String.valueOf(dataSource);byte[] encryptedData = cipher.doFinal(str.getBytes("UTF-8"));return Base64.encodeToString(encryptedData, Base64.DEFAULT);}return null;}/** * DES加密 * * @param desKey * @param dataSource * @throws InvalidKeyException * @throws NoSuchAlgorithmException * @throws IllegalBlockSizeException * @throws BadPaddingException * @throws NoSuchPaddingException * @throws InvalidKeySpecException * @throws UnsupportedEncodingException */public static String encode(String desKey, Object dataSource) throws Exception {if (desKey != null && dataSource != null) {byte rawKeyData[] = desKey.getBytes("UTF-8");// DES算法要求有一个可信任的随机数源// SecureRandom sr = new SecureRandom();// 从原始密匙数据创建一个DESKeySpec对象DESKeySpec dks = new DESKeySpec(rawKeyData);// 创建一个密匙工厂,然后用它把DESKeySpec转换成一个SecretKey对象SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey key = keyFactory.generateSecret(dks);// Cipher对象实际完成加密操作Cipher cipher = Cipher.getInstance("DES");// 用密匙初始化Cipher对象cipher.init(Cipher.ENCRYPT_MODE, key);// 现在,获取数据并加密String str = String.valueOf(dataSource);byte[] encryptedData = cipher.doFinal(str.getBytes("UTF-8"));return Base64.encodeToString(encryptedData, Base64.DEFAULT);}return null;}/** * 获得DES 默认key * @return */public static String getDesKey() {return desKey;}/** * 设置DES 默认key * @param desKey */public static void setDesKey(String desKey) {DesUtil.desKey = desKey;}}
0 0
- Android DES加密工具
- iOS、后台、Android 三个一致的加密工具 ---------DES加密
- DES加密工具类
- DES加密解密工具
- 加密工具之DES
- DES加密工具类
- android des 加密
- android DES加密
- Android DES加密解密
- android des 加密解密
- Java/Android DES加密
- Android DES加密实现
- android DES加密
- android 3des 加密
- Android 3DES加密
- android--DES加密
- Android DES 加密
- Android DES加密解密
- 关于Mysql开机自启动和Runlevel
- 【分享】国内某B2C电子商务网站的数据集
- jq如何获取id名带.(点)的标签
- 提高编程能力的7条建议
- 软件开发流程
- Android DES加密工具
- 操作符重载应该设计成类成员函数还是普通非成员函数?
- windows下连接linux环境共享文件的配置过程
- Conversion Operators in OpenCascade
- Installation error: INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
- Android & Linux的suspent和resume执行流程
- sql函数能判断字段是否包含英文
- 电脑技术(1)服务器常见故障代码
- 【OpenCV】高斯混合背景建模