利用JAVA实现DES加密算法
JAVA 实现 利用 加密算法 DES
2023-06-13 09:15:04 时间
JAVA实现
publicbyte[]desCrypto(byte[]datasource,Stringpassword){
try{
SecureRandomrandom=newSecureRandom();
DESKeySpecdesKey=newDESKeySpec(password.getBytes());
//创建一个密匙工厂,然后用它把DESKeySpec转换成
SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("DES");
SecretKeysecurekey=keyFactory.generateSecret(desKey);
//Cipher对象实际完成加密操作
Ciphercipher=Cipher.getInstance("DES");
//用密匙初始化Cipher对象
cipher.init(Cipher.ENCRYPT_MODE,securekey,random);
//现在,获取数据并加密
//正式执行加密操作
returncipher.doFinal(datasource);
}catch(Throwablee){
e.printStackTrace();
}
returnnull;
}
privatebyte[]decrypt(byte[]src,Stringpassword)throwsException{
//DES算法要求有一个可信任的随机数源
SecureRandomrandom=newSecureRandom();
//创建一个DESKeySpec对象
DESKeySpecdesKey=newDESKeySpec(password.getBytes());
//创建一个密匙工厂
SecretKeyFactorykeyFactory=SecretKeyFactory.getInstance("DES");
//将DESKeySpec对象转换成SecretKey对象
SecretKeysecurekey=keyFactory.generateSecret(desKey);
//Cipher对象实际完成解密操作
Ciphercipher=Cipher.getInstance("DES");
//用密匙初始化Cipher对象
cipher.init(Cipher.DECRYPT_MODE,securekey,random);
//真正开始解密操作
returncipher.doFinal(src);
}
测试场景
例如,我们可以利用如上函数对字符串进行加密解密,也可以对文件进行加密解密,如:
//待加密内容
Stringstr="测试内容";
//密码,长度要是8的倍数
Stringpassword="12345678";
byte[]result=DESCrypto.desCrypto(str.getBytes(),password);
System.out.println("加密后内容为:"+newString(result));
//直接将如上内容解密
try{
byte[]decryResult=des.decrypt(result,password);
System.out.println("加密后内容为:"+newString(decryResult));
}catch(Exceptione1){
e1.printStackTrace();
}
相关文章
- 利用java实现发送邮件
- java 实现多态_Java多态的实现原理
- java redis锁_Java中Redis锁的实现[通俗易懂]
- Java实现九九乘法表[通俗易懂]
- 用java实现笛卡尔积_Java实现笛卡尔积
- Java实现随机人名抽取
- java静态代理实现_静态注册和动态注册的优缺点
- 一致性hash算法 java实现_信息的一致性
- java+sm4+加密算法_SM4加密算法实现Java和C#相互加密解密
- 一致性Hash算法的Java实现详解编程语言
- Java中的关键字 transient详解编程语言
- Java 连接 MySQL 数据库简易实现(java连mysql)
- 实现Linux上的Java环境:从安装到配置(linux安装java环境)
- Linux下快速编写高效的Java代码(linux写java)
- 删除利用Redis实现Java定时过期删除策略(redisjava过期)
- 机制利用Redis Java实现过期机制(redisjava过期)
- 策略Java中利用Redis实现数据过期策略(redisjava过期)
- 删除利用Java调用Redis实现设置过期删除(redisjava过期)
- 策略利用Java来实现Redis过期策略(redisjava过期)
- 策略利用Java实现Redis数据过期策略(redisjava过期)
- 管理利用Java驱动Redis实现过期管理(redisjava过期)
- 策略利用Java实现Redis过期策略(redisjava过期)
- 缓存『Redis Java实现高效利用过期缓存』(redisjava过期)
- Java脚本实现Linux系统的登录(java登录Linux)
- Java:持续革新的 20 年
- 使用Java类连接MSSQL数据库(mssql连接java类)
- 一起学习Java的Oracle包(java的oracle包)
- 利用Java实现zip压缩/解压缩
- Java实现九九乘法表的小例子
- java实现高效的枚举元素集合示例