DES加密-java版
来源:互联网 发布:dnf总网络连接中断 编辑:程序博客网 时间:2024/06/17 13:16
import java.security.Key;import java.security.Security;import javax.crypto.Cipher;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;public class DES { Key key;public DES(String str) { setKey(str);//生成密匙}public DES() { setKey("computer_123");}/** * 根据参数生成KEY */public void setKey(String strKey) { try { Security.addProvider(new com.sun.crypto.provider.SunJCE()); this.key = getKey(strKey.getBytes()); } catch (Exception e) { throw new RuntimeException( "Error initializing SqlMap class. Cause: " + e); }}private Key getKey(byte[] arrBTmp) throws Exception {// 创建一个空的8位字节数组(默认值为0)byte[] arrB = new byte[8];// 将原始字节数组转换为8位for (int i = 0; i < arrBTmp.length && i < arrB.length; i++) {arrB[i] = arrBTmp[i];}// 生成密钥Key key = new javax.crypto.spec.SecretKeySpec(arrB, "DES");return key;}/** * 加密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[]) { DES des = new DES("tom"); // 设置密钥 //des.setKey("12345678"); String str1 = "www.baidu"; //DES加密 String str2 = des.getEncString(str1); String deStr = des.getDesString(str2); System.out.println("密文:" + str2); //DES解密 System.out.println("明文:" + deStr);}}
0 0
- DES加密-java版
- DES加密、解密字符串算法(java版)
- DES加密、解密字符串算法(java版)
- DES加密、解密字符串算法(java版)
- DES加密与解密(java版)
- DES加密演示程序(JAVA版)
- DES加密、解密字符串算法(java版)
- DES加密、解密字符串算法(java版)
- DES加密、解密字符串算法(java版)
- DES加密、解密字符串算法(java版)
- java--des加密解密
- java des加密
- java des字符串加密
- java的des加密
- JAVA实现DES加密
- JAVA实现DES加密
- DES-JAVA加密
- java加密 des
- 11.2RAC 启动过程
- Microsoft JET Database Engine 错误 '80004005'
- linux如何查看系统信息
- 批量写图像地址的方法
- HDU4970 Killing Monsters
- DES加密-java版
- C# Socket编程 同步以及异步通信
- listView 一个简单的Item布局
- Dom编程(邮件的全选、反选、删除选中项)
- 10 Tips to Push Your Git Skills to the Next Level
- ASP.NET MVC 容器总结
- Redis的安装以及配置
- VMware workstation
- ibatis学习笔记-修改实体对象