java des加密与解密
来源:互联网 发布:淘宝客需要什么软件 编辑:程序博客网 时间:2024/05/16 01:07
package com.suning.ebuy.hyj.treaty.util;import java.security.Key;import java.security.SecureRandom;import javax.crypto.Cipher;import javax.crypto.KeyGenerator;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder; public class DesUtil {Key key;public DesUtil(String str) { setKey(str);//生成密匙}public DesUtil() { setKey("siyue_qi");}/** * 根据参数生成KEY */public void setKey(String strKey) { try { KeyGenerator _generator = KeyGenerator.getInstance("DES"); _generator.init(new SecureRandom(strKey.getBytes())); this.key = _generator.generateKey(); _generator = null; } catch (Exception e) { throw new RuntimeException( "Error initializing SqlMap class. Cause: " + e); }}/** * 加密String明文输入,String密文输出 */public String getEncString(String strMing) { byte[] byteMi = null; byte[] byteMing = null; String strMi = "";BASE64Encoder base64en = new BASE64Encoder(); try { byteMing = strMing.getBytes("UTF8"); byteMi = this.getEncCode(byteMing); strMi = base64en.encode(byteMi); } catch (Exception e) { throw new RuntimeException( "Error initializing SqlMap class. Cause: " + e); } finally { base64en = null; byteMing = null; byteMi = null; } return strMi;}/** * 解密 以String密文输入,String明文输出 * @param strMi * @return */public String getDesString(String strMi) { BASE64Decoder base64De = new BASE64Decoder(); byte[] byteMing = null; byte[] byteMi = null; String strMing = ""; try { byteMi = base64De.decodeBuffer(strMi); byteMing = this.getDesCode(byteMi); strMing = new String(byteMing, "UTF8"); } catch (Exception e) { throw new RuntimeException( "Error initializing SqlMap class. Cause: " + e); } finally { base64De = null; byteMing = null; byteMi = null; } return strMing;}/** * 加密以byte[]明文输入,byte[]密文输出 * @param byteS * @return */private byte[] getEncCode(byte[] byteS) { byte[] byteFina = null; Cipher cipher; try { cipher = Cipher.getInstance("DES"); cipher.init(Cipher.ENCRYPT_MODE, key); byteFina = cipher.doFinal(byteS); } catch (Exception e) { throw new RuntimeException( "Error initializing SqlMap class. Cause: " + e); } finally { cipher = null; } return byteFina;}/** * 解密以byte[]密文输入,以byte[]明文输出 * @param byteD * @return */private byte[] getDesCode(byte[] byteD) { Cipher cipher; byte[] byteFina = null; try { cipher = Cipher.getInstance("DES"); cipher.init(Cipher.DECRYPT_MODE, key); byteFina = cipher.doFinal(byteD); } catch (Exception e) { throw new RuntimeException( "Error initializing SqlMap class. Cause: " + e); } finally { cipher = null; } return byteFina;}public static void main(String args[]) {DesUtil des = new DesUtil(); // 设置密钥 //des.setKey("12345678"); String str1 = "0"; //DES加密 String str2 = des.getEncString(str1); String deStr = des.getDesString(str2); System.out.println("密文:" + str2); //DES解密 System.out.println("明文:" + deStr);}}
0 0
- java Des加密与解密
- java des加密与解密
- java使用DES加密与解密
- DES加密与解密(java版)
- java 对字符串DES加密与解密
- java实现DES数据加密与解密
- JAVA与.NET DES加密解密
- DES加密与解密的java实现
- java实现DES数据加密与解密
- java实现DES数据加密与解密
- DES加密解密-CryptoJS与Java
- java实现DES数据加密与解密
- Des加密与解密
- DES加密与解密
- java--des加密解密
- java DES加密解密
- java DES加密解密
- java DES加密解密
- 互联网快速走进我们每个人的生活
- JavaScript內存优化
- 马哥Linux视频教程之零基础企业级Linux系统工程师就业班培训
- ogg 配置1
- android的spinner字体控制
- java des加密与解密
- 走进cassandra之二:数据模型
- 1077. Kuchiguse (20)
- setitimer设置定时器测试---1
- SQLite的并发处理
- html页面调试设置不让浏览器缓存
- 评论:翻拍《葫芦娃》是文化“啃老”
- window下mysql主从复制设置
- Ubuntu打开终端的方法三种