DES 加密、解密
2017-02-28 16:53
225 查看
/* DES 加密、解密 */ /** * DES 加密 * * @param data * 明文 * @return * @throws Exception */ public static String DESEncrypt(String data) throws Exception { try { // 生成一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密钥数据创建DESKeySpec对象 DESKeySpec dks = new DESKeySpec(KEY.getBytes()); // 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey securekey = keyFactory.generateSecret(dks); // Cipher对象实际完成加密操作 Cipher cipher = Cipher.getInstance("DES"); // 用密钥初始化Cipher对象 cipher.init(Cipher.ENCRYPT_MODE, securekey, sr); // 加密数据 String strs = new BASE64Encoder().encodeBuffer(cipher.doFinal(data.getBytes())); return strs; } catch (Exception e) { e.printStackTrace(); } return null; } /** * DES 解密 * * @param data * 密文 * @return 明文 * @throws Exception */ public static String DESDecrypt(String data) throws Exception, Exception { if (data == null) return null; byte[] buf = new BASE64Decoder().decodeBuffer(data); // 生成一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密钥数据创建DESKeySpec对象 DESKeySpec dks = new DESKeySpec(KEY.getBytes()); // 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES"); SecretKey securekey = keyFactory.generateSecret(dks); // Cipher对象实际完成加密操作 Cipher cipher = Cipher.getInstance("DES"); // 用密钥初始化Cipher对象 cipher.init(Cipher.ENCRYPT_MODE, securekey, sr); return new String(cipher.doFinal(buf)); }
上面代码在测试的时候,解密出现了乱码,
建议采用自己对base64进行编码格式控制,这样就能够保证加密,解密格式一致,不会出现乱码
。
相关文章推荐
- 常用的加密解密(DES,RSA)
- 【转】用 Java 解密 C# 加密的数据(DES)
- [导入]对字符串进行SHA1和DES(加密,解密),加密和解密的类
- Java 加密解密之对称加密算法DES
- DES 加密解密算法的C++实现
- [网络收集]C# 各种加密,解密算法【MD5,DES,线性,卷帘】
- 常用加密解密算法【RSA、AES、DES、MD5】介绍和使用
- DES c#加密后java解密
- c# DES 加密解密
- AS3加密解密Des
- DES的加密解密
- C# 與JAVA 共用的DES 加密解密方法
- TripleDESCryptoServiceProvider 加密解密
- DES 加密解密
- c# DES 加密解密方法
- .NET中的加密解密:私钥加密(对称加密):AES、DES、RC2、Rijindael、TripleDES
- .Net(c#)加密解密之Aes和Des
- DES C#加密 Java解密
- DES (Data Encryption Standard)加密解密整理
- 加密解密DES