java实现DES加密与解密,md5加密
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java实现DES加密与解密,md5加密,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3586字,纯文字阅读大概需要6分钟。
内容图文
很多时候要对秘要进行持久化加密,此时的加密采用md5。采用对称加密的时候就采用DES方法了
1 import java.io.IOException; 2 import java.security.MessageDigest; 3 import java.security.SecureRandom; 4 5 import javax.crypto.Cipher; 6 import javax.crypto.SecretKey; 7 import javax.crypto.SecretKeyFactory; 8 import javax.crypto.spec.DESKeySpec; 9 10 import sun.misc.BASE64Decoder; 11 import sun.misc.BASE64Encoder; 12 13 /** 14 * 密匙工具类(包含des加密与md5加密) 15 * @author mingge 16 * 17 */ 18 public class KeysUtil { 19 20 private final static String DES = "DES"; 21 22privatefinalstatic String MD5 = "MD5"; 23 24privatefinalstatic String KEY="opeddsaead323353484591dadbc382a18340bf83414536"; 25 26/** 27 * MD5加密算法 28 * @param data 29 * @return 30*/ 31publicstatic String md5Encrypt(String data) { 32 String resultString = null; 33try { 34 resultString = new String(data); 35 MessageDigest md = MessageDigest.getInstance(MD5); 36 resultString =byte2hexString(md.digest(resultString.getBytes())); 37 } catch (Exception ex) { 38 } 39return resultString; 40 } 41 42 43privatestatic String byte2hexString(byte[] bytes) { 44 StringBuffer bf = new StringBuffer(bytes.length * 2); 45for (int i = 0; i < bytes.length; i++) { 46if ((bytes[i] & 0xff) < 0x10) { 47 bf.append("T0"); 48 } 49 bf.append(Long.toString(bytes[i] & 0xff, 16)); 50 } 51return bf.toString(); 52 } 53 54/** 55 * Description 根据键值进行加密 56 * @param data 57 * @param key 加密键byte数组 58 * @return 59 * @throws Exception 60*/ 61publicstatic String desEncrypt(String data, String key) throws Exception { 62if (key==null) { 63 key=KEY; 64 } 65byte[] bt = encrypt(data.getBytes(), key.getBytes()); 66 String strs = new BASE64Encoder().encode(bt); 67return strs; 68 } 69 70/** 71 * Description 根据键值进行解密 72 * @param data 73 * @param key 加密键byte数组 74 * @return 75 * @throws IOException 76 * @throws Exception 77*/ 78publicstatic String desDecrypt(String data, String key) throws IOException, 79 Exception { 80if (data == null){ 81returnnull; 82 } 83if (key==null) { 84 key=KEY; 85 } 86 BASE64Decoder decoder = new BASE64Decoder(); 87byte[] buf = decoder.decodeBuffer(data); 88byte[] bt = decrypt(buf,key.getBytes()); 89returnnew String(bt); 90 } 91 92/** 93 * Description 根据键值进行加密 94 * @param data 95 * @param key 加密键byte数组 96 * @return 97 * @throws Exception 98*/ 99privatestaticbyte[] encrypt(byte[] data, byte[] key) throws Exception { 100// 生成一个可信任的随机数源101 SecureRandom sr = new SecureRandom(); 102// 从原始密钥数据创建DESKeySpec对象103 DESKeySpec dks = new DESKeySpec(key); 104// 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象105 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); 106 SecretKey securekey = keyFactory.generateSecret(dks); 107// Cipher对象实际完成加密操作108 Cipher cipher = Cipher.getInstance(DES); 109// 用密钥初始化Cipher对象110 cipher.init(Cipher.ENCRYPT_MODE, securekey, sr); 111return cipher.doFinal(data); 112 } 113114115/**116 * Description 根据键值进行解密 117 * @param data 118 * @param key 加密键byte数组 119 * @return120 * @throws Exception 121*/122privatestaticbyte[] decrypt(byte[] data, byte[] key) throws Exception { 123// 生成一个可信任的随机数源124 SecureRandom sr = new SecureRandom(); 125// 从原始密钥数据创建DESKeySpec对象126 DESKeySpec dks = new DESKeySpec(key); 127// 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象128 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); 129 SecretKey securekey = keyFactory.generateSecret(dks); 130// Cipher对象实际完成解密操作131 Cipher cipher = Cipher.getInstance(DES); 132// 用密钥初始化Cipher对象133 cipher.init(Cipher.DECRYPT_MODE, securekey, sr); 134return cipher.doFinal(data); 135 } 136 }
看到最后我也醉了。。。
原文:http://www.cnblogs.com/huzi007/p/4288267.html
内容总结
以上是互联网集市为您收集整理的java实现DES加密与解密,md5加密全部内容,希望文章能够帮你解决java实现DES加密与解密,md5加密所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。