加密与解密
来源:互联网 发布:js循环遍历json对象 编辑:程序博客网 时间:2024/06/05 06:34
1、准备工作:
a、对base64编码的string解码成byte数组
private static byte[] getFromBASE64(String s) {if (s == null)return null;BASE64Decoder decoder = new BASE64Decoder();try {byte[] b = decoder.decodeBuffer(s);return b;} catch (Exception e) {return null;}}
b、将 byte数组 进行 BASE64 编码
private static String getBASE64(byte[] b) {if (b == null)return null;try {String returnstr = (new BASE64Encoder()).encode(b);return returnstr;} catch (Exception e) {return null;}}
2、加密操作
/** * 加密方法 * @param message:需要加密的值 * @param key:加密密钥串 * @return result:加密结果 */public static String deCrypt(String message, String key) {String result="";if(StringUtils.isNotBlank(message) && StringUtils.isNotBlank(key)){try {Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("ASCII"));SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey secretKey = keyFactory.generateSecret(desKeySpec);cipher.init(Cipher.ENCRYPT_MODE, secretKey);byte data[] = message.getBytes("UTF-8");byte[] encryptedData = cipher.doFinal(data);return getBASE64(encryptedData);} catch (Exception e) {return null;}}return result;}
3、解密方法
/** * 解密方法 * @param message:需要解密的值 * @param message:解密密钥 * @return result:解密结果 */public static String desEncrypt(String message, String key) {String result="";if(StringUtils.isNotBlank(message) && StringUtils.isNotBlank(key)){try {Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("ASCII"));SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey secretKey = keyFactory.generateSecret(desKeySpec);cipher.init(Cipher.DECRYPT_MODE, secretKey);byte data[] = getFromBASE64(message);byte[] encryptedData = cipher.doFinal(data);return new String(encryptedData);} catch (Exception e) {return null;}}return result;}
4、用到的类库:
import javax.crypto.Cipher;import javax.crypto.SecretKey;import javax.crypto.SecretKeyFactory;import javax.crypto.spec.DESKeySpec;import org.apache.commons.lang.StringUtils;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;
- 加密与解密
- 脚本加密与解密
- 加密与解密
- 加密与解密
- 加密与解密
- 数据加密与解密
- javascript加密与解密
- 数据加密与解密
- 数据加密与解密
- 加密与解密
- 加密与解密
- 加密与解密
- 加密与解密
- RGSSAD加密与解密
- DESCryptoServiceProvider 加密与解密
- js加密与解密
- 加密与解密DataSet
- 加密与解密
- 颜色选择表
- c语言运算符号优先级别
- C++关键字volatile解析
- ACE多线程编程(一)
- 算法导论 动态规划入门之装配线调度问题
- 加密与解密
- Ruby+Watir的环境配置
- android应用之多点触摸
- WCE 中 关于 按钮的提示功能
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table doesn't exist解决方案
- 托盘化(最小化)处理 MFC
- 毕业设计《4个16*16点阵屏设计》
- 使用Samba访问windows的共享目录
- How to handle Slowly Changing Dimensions (SCDs) in data model design?