java des加密解密_DES加密和解密的JAVA实现方式
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* @author tangx
* 测试des的加密与解密
*/
public class TestDES {
public static void main(String[] args) {
// TODO Auto-generated method stub
String source = "测试des加密";
String key = "123456781";
String result = encrypt(source, key);
//加密结果
System.out.println(result);
//解密
System.out.println(decrypt(result, key));
}
/**
* DES加密操作
* @param source 要加密的源
* @param key 约定的密钥
* @return
*/
public static String encrypt(String source,String key){
//强加密随机数生成器
SecureRandom random = new SecureRandom();
try {
//创建密钥规则
DESKeySpec keySpec = new DESKeySpec(key.getBytes());
//创建密钥工厂
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
//按照密钥规则生成密钥
SecretKey secretKey = keyFactory.generateSecret(keySpec);
//加密对象
Cipher cipher = Cipher.getInstance("DES");
//初始化加密对象需要的属性
cipher.init(Cipher.ENCRYPT_MODE, secretKey, random);
//开始加密
byte[] result = cipher.doFinal(source.getBytes());
//Base64加密
return new BASE64Encoder().encode(result) ;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
* 解密
* @param cryptograph 密文
* @param key 约定的密钥
* @return
*/
public static String decrypt(String cryptograph,String key){
//强加密随机生成器
SecureRandom random = new SecureRandom();
try {
//定义私钥规则
DESKeySpec keySpec = new DESKeySpec(key.getBytes());
//定义密钥工厂
SecretKeyFactory factory = SecretKeyFactory.getInstance("DES");
//按照密钥规则生成密钥
SecretKey secretkey = factory.generateSecret(keySpec);
//创建加密对象
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.DECRYPT_MODE, secretkey, random);
//Base64对
byte[] result = new BASE64Decoder().decodeBuffer(cryptograph);
return new String(cipher.doFinal(result));
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
测试结果:
java des加密解密_DES加密和解密的JAVA实现方式相关推荐
- java des ecb_【转】 java DES ECB模式对称加密解密
最近需要又要使用DES加密数据,要求DES加密出来的数据为对称加密,经过研究,发现了一些问题: 1.DES对称ECB模式加密的数据,长度必须为8的倍数 2.加密的数据,加密后先转码(因为加密后的数据我 ...
- java des算法_Java DES算法程序
java des算法 Java Cryptography Extension (JCE) provides framework and implementation for generating ke ...
- [转]DES加密 java与.net可以相互加密解密两种方法
[转]原文地址:http://jumpman.javaeye.com/blog/605996 DES加密 java与.net可以相互加密解密两种方法 文章分类:Java编程 通过这个方法可以实现jav ...
- Java实现Base64、DES、AES、RSA加解密以及加密方式之间的区别
Base64 加密, 这个其实不可以算作加密方法,它可以看作是一种编码方式,它的用途只是二进制数字和字符串进行相互转化. Base64是网络上最常见的用于传输 8Bit字节码的编码方式之一,是一种基于 ...
- java des ecb_java DES ECB模式对称加密解密
最近需要又要使用DES加密数据,要求DES加密出来的数据为对称加密,经过研究,发现了一些问题: 1.DES对称ECB模式加密的数据,长度必须为8的倍数 2.加密的数据,加密后先转码(因为加密后的数据我 ...
- Java DES 加密解密
1.加密的相关概念 1.明文:被隐蔽的消息称作明文(plaintext) 2.密文:隐蔽后的消息称作密文(ciphertext) 3.加密:将明文变换成密文的过程称作加密(encryption) 4. ...
- DES和RSA混合加密及解密-JAVA
DES和RSA混合加密及解密 实际开发过程中,RSA生成的公钥应保存在加密方,私钥应保存在解密方,可使用读取文件内容方式获取密钥. maven依赖: <!-- DES --><dep ...
- Java DES、AES、RSA、DM5读取文件加密解密
//下面代码是直接读取文件来进行加密解密,算法文件 package Test; import javax.crypto.KeyGenerator; import javax.crypto.Cipher ...
- java实现加密解密抽象_DES加密解密-java实现
DES加密解密涉及到的JAVA类 Cipher 此类为加密和解密提供密码功能.它构成了 Java Cryptographic Extension (JCE) 框架的核心. 为创建 Cipher 对象, ...
最新文章
- Oracle --存储过程,输入不定个数参数
- [译]理解js中的event loop
- python import 路径设置
- 机器人程序设计——之如何正确入门ROS | 硬创公开课(附视频/PPT)【转】
- matlab实现epirb调制,[单选] 根据《建筑安装工程费用项目组成》(建标[2003]206号)的规定,下列属于直接工程费中材料费的是()。...
- 关于STM32L100xx, STM32L151xx, STM32L152xx ,STM32L162xx 的Power Control
- UDS诊断系列之一 汽车诊断简介
- PX4的软件仿真(SITL)环境配置过程
- 你知道大量群发邮件用什么邮箱好吗?
- 淘宝至强cpu为什么那么便宜
- ZOJ3594 Sexagenary Cycle
- OBIEE,OAS,OAC三者之间的区别
- wating for network configuration unity恢复
- 惠普暗影精灵4pro安装ubuntu16.04
- Milestone 系统架构 及产品白皮书
- 电容笔有必要买吗?双十一性价比高的电容笔推荐
- CAN通信标准帧和扩展帧(全网最透彻解答)
- 中国脂肪填充奶粉(FFMP)市场趋势报告、技术动态创新及市场预测
- 题解:线性规划与网络流24题 T2 太空飞行计划问题
- JIR、进程池和线程池