import java.security.Key; import java.security.spec.AlgorithmParameterSpec; import javax.crypto.Cipher; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import javax.crypto.spec.IvParameterSpec; public class Util { /** * 加密方法 * @param data:要加密的数据 * @param key:秘钥 * @return * @throws Exception */ public static String encryption(String data,String key) throws Exception{ try { DESKeySpec dks = new DESKeySpec(key.getBytes()); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); //key的长度不能够小于8位字节 Key secretKey = keyFactory.generateSecret(dks); Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); IvParameterSpec iv = new IvParameterSpec("12345678".getBytes()); AlgorithmParameterSpec paramSpec = iv; cipher.init(Cipher.ENCRYPT_MODE, secretKey,paramSpec); byte[] bytes = cipher.doFinal(data.getBytes()); String str=byte2HexString(bytes); return str; } catch (Exception e) { throw new Exception(e); } } /** * byte[]转换成字符串 * @param b * @return */ static String byte2HexString(byte[] b) { StringBuffer sb = new StringBuffer(); int length = b.length; for (int i = 0; i < length; i++) { String stmp = Integer.toHexString(b[i]&0xff); if(stmp.length() == 1) sb.append("0"+stmp); else sb.append(stmp); } return sb.toString(); } /** * 解密方法 * @param data:要解密的数据 * @param key:秘钥 * @return * @throws Exception */ public static String decryption(String data,String key) throws Exception{ try { DESKeySpec dks = new DESKeySpec(key.getBytes()); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); //key的长度不能够小于8位字节 Key secretKey = keyFactory.generateSecret(dks); Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); IvParameterSpec iv = new IvParameterSpec("12345678".getBytes()); AlgorithmParameterSpec paramSpec = iv; cipher.init(Cipher.DECRYPT_MODE, secretKey,paramSpec); String str=new String(cipher.doFinal(String2Byte(data))); return str; } catch (Exception e) { throw new Exception(e); } } /** * 16进制转换成byte[] * @param hexString * @return */ static byte[] String2Byte(String hexString) { if(hexString.length() % 2 ==1) return null; byte[] ret = new byte[hexString.length()/2]; for (int i = 0; i < hexString.length(); i+=2) { ret[i/2] = Integer.decode("0x"+hexString.substring(i,i+2)).byteValue(); } return ret; } }
加密实例:
try { String string="广州市"; String encryption = null; encryption=Util.encryption(string, "abcdefghijk"); Log.i("加密后的字符串:",encryption); String decryption=null; decryption=Util.decryption(encryption, "abcdefghijk"); Log.i("解密后的字符串:", decryption); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); }
运行结果:
02-06 15:56:09.840: I/加密后的字符串:(20768): f9618e92794af394
02-06 15:56:09.850: I/解密后的字符串:(20768): 广州
相关推荐
MD5加密MD5加密MD5加密MD5加密MD5加密
Kettle中使用JavaScript调用jar包对文件内容进行MD5加密.本文主要知识点: JavaScript调用jar包对文件内容进行MD5加密,返回加密md5值 Kettle实现对文件内容的加密,返回加密md5值 2.使用方法 1)下载jar包 ...
pb9.0调用md5加密
MD5加密MD5加密MD5加密MD5加密MD5加密MD5加密MD5加密MD5加密MD5加密MD5加密
两种MD5加密jar包,两种MD5加密jar包,两种MD5加密jar包,两种MD5加密jar包,两种MD5加密jar包,两种MD5加密jar包,两种MD5加密jar包,
md5加密md5加密md5加密md5加密md5加密md5加密
在WPS内通过JS宏实现MD5加密
搞小程序开发,请求接口的加密部分用到md5,百度一大堆垃圾的js md5加密,每一个都正确,都是不支持中文的,爬墙才找到这个,希望大家别入坑...js md5加密,md5支持utf-8加密,javascript md5加密,最好用js md5加密。
MD5编码、MD5加密解密demo代码,详看博客 对字符串进行MD5编码及MD5加密和解密
Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。 Java实现MD5加密以及解密,附带测试类,具体见代码。
批量MD5加密工具,很不错。
VBA MD5加密 算法
C++实现 MD5加密算法 可直接调用 hash1加密算法 MD5加密算法 MD5加密算法
MD5加密单独封装一个类,可以生成16位大写(默认)或小写的(需修改源码)的密钥串。与在线MD5加密结果一致。VS2005工程。
md5加密算法 C语言(经过测试验证完整版) 经过调试验证,与工具结果一致 MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash...
md5加密算法源码: 一 \md5加密是对字符或密码进行的16位或32位等加密方式! 一般在普通MDB数据库经常用到,比如论坛数据库等.有用! 二 \加密解密并不矛盾,比如银行系统的128位加密现在谁可以轻易破的了呢? 虽然md5...
MD5加密器,用vb编写的,已生产了exe文件。 包括16位加密和32位加密两种加密方式
密码学md5加密技术..........................................................................................................................................................................................
VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密VB的md5加密
C# MD5加密 实例源码(加密解密)