加密与解密

来源:互联网 发布: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;


 


 

 

	
				
		
原创粉丝点击