import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.SecretKey; import javax.crypto.SecretKeyFactory; import javax.crypto.spec.DESKeySpec; import sun.misc.BASE64Encoder; public class Test { private final static String DES = "DES"; static String data = "299995"; static String key = "123hck321"; public static void main(String[] args) { try { String jiami = encrypt(data, key); System.out.print("加密:" + jiami); byte jiemi[] = decrypt(encrypt(data.getBytes(), key.getBytes()), key.getBytes()); System.err.println("解密: " + new String(jiemi)); } catch (Exception e) { e.printStackTrace(); } } public static String encrypt(String data, String key) throws Exception { // 对string进行BASE64Encoder转换 byte[] bt = encrypt(data.getBytes(), key.getBytes()); BASE64Encoder base64en = new BASE64Encoder(); String strs = new String(base64en.encode(bt)); return strs; } // 加密代码 private static byte[] encrypt(byte[] data, byte[] key) throws Exception { // 生成一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密钥数据创建DESKeySpec对象 DESKeySpec dks = new DESKeySpec(key); // 创建一个密钥工厂,然后用它把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 cipher.doFinal(data); } // 解密代码 private static byte[] decrypt(byte[] data, byte[] key) throws Exception { // 生成一个可信任的随机数源 SecureRandom sr = new SecureRandom(); // 从原始密钥数据创建DESKeySpec对象 DESKeySpec dks = new DESKeySpec(key); // 创建一个密钥工厂,然后用它把DESKeySpec转换成SecretKey对象 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(DES); SecretKey securekey = keyFactory.generateSecret(dks); // Cipher对象实际完成解密操作 Cipher cipher = Cipher.getInstance(DES); // 用密钥初始化Cipher对象 cipher.init(Cipher.DECRYPT_MODE, securekey, sr); return cipher.doFinal(data); } }
相关推荐
--sunfruit 关于加密解密的理论知识已经不少了,这里只给出一个加密解密以及生成key的源代码,给大家参考
本文就简单介绍如何通过JAVA实现AES加密: /** * 测试AES加密和解密 * @param args */ public static void main(String[] args) { /**数据初始化**/ String content = "http://www.mbaike.net"; String...
基于Java开发的数据加密解密工具,可对字符串和文件类型进行加密解密,支持AES、DES和3DES三种常用的对称加密算法。
JAVA数据加密解密的实例+Java源码
针对java对数据的加密解密
压缩包里有两个工程,一个vc6.0一个myeclipse,本帖是修复贴,原帖地址c/c++ 与java互通 AES加密解密,算法ECB/PKCS5PADDING http://download.csdn.net/download/wangsonghiweed/4328267 -来自CSDN,有童鞋反映有...
JAVA数据加密解密的实例+
JAVA也是通过包来实现加密和解密的,那么我的C++是通过OPENSSL的库来实现的。 重点来到了:RSA使用过程 1、C++随机生成一对公钥和私钥 2、JAVA用公钥给明文打包形成密文 3、C++用私钥解密密文
Java 生成RSA密钥进行数据加密解密 支持超长字符分区 ,同时支持本地读取生成的密钥文件和远程服务器上存放的秘钥文件
近期互联网上频频爆出网站数据库被脱裤,造成大量的敏感数据的失窃和丢失,给很多企业带来重大损失,本加密解密组件(jar包)可以帮助开发者,快速对应用中的敏感数据进行加密解密,尽可能的帮助开发人员提高应用的...
java代码-使用java解决DES加密解密的源代码 ——学习参考资料:仅用于个人学习使用!
因为是参照 js Base64写的java实现,所以代码可实现前台js,后台java的加密,解密的任意组合,当然也可自己简单改下参照序列顺序,使自己的加密解密变为独一的,网上无法使用工具解密出正确的数据。熟悉二进制的可...
java 安卓 同步加密解密,使用私钥加密 解密。增加数据传输安全度
JAVA数据加密解密的实例+Java实用源码整理learns
C#与java平台RSA加密解密签名验签互通案例,解决RSA在C#与java加密算法不同导致验签不过情况
数据加密,java数据加密解密,2万数据依然没问题
java数据加密解密类,批量读取文件流加密后保存于用户指定的文件夹中。
java微信小程序加密数据解密 可以直接使用可以直接使用可以直接使用可以直接使用可以直接使用可以直接使用
用java编写的AES加密解密,并且包含界面
本书是Java安全领域的百科全书,密码学领域的权威经典,5大社区一致鼎力推荐。...消息摘要算法用于数据校验、对称加密算法用于数据加密、非对称加密算法用于密钥交换、数字签名算法用于身份验证等。