java 加密技术(二)
1 对称加密算法
1.1 介绍
- 对称加密算法是说加密秘钥与解密秘钥使用的是同一把.
- 他是属于初等(初级)加密算法, 使用范围广,使用频率高 .
- 常用对称加密算法有
- DES
- 3DES
- AES
- PBE
- IDEA
2 DES算法
2.1 介绍
DES (Data Encryption Standard) 数据加密标准. 由美国国家标准性研究所提供, 但是自98年之后,已经被破解,安全性较差. 所以现在项目中不推荐使用DES.
默认秘钥长度56位
2.2 代码实现
package secret;
import java.security.NoSuchAlgorithmException;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.SecretKeyFactory;
import javax.crypto.spec.DESKeySpec;
import org.apache.commons.codec.binary.Hex;
public class DESTest {
public static String src ="i am gc DES";
public static void main(String[] args) {
System.out.println("====jdkDES实现====");
jdkDES();
System.out.println("=================");
//运行结果
/*
====jdkDES实现====
生成的DES秘钥:e5312a52d93b8325
加密之后的结果0b980d14f67e7e2dbf3bf45e5edc5c11
解密之后的结果:i am gc DES
=================
*/
}
public static void jdkDES(){
try {
//由DES算法生成算法生成器KeyGenerator
KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
//由算法生成器生成秘钥
SecretKey secretKey = keyGenerator.generateKey();
//将秘钥转成byte数组
byte[] byteKey = secretKey.getEncoded();
//将byte数组十六进制转换成字符串
System.out.println("生成的DES秘钥:"+Hex.encodeHexString(byteKey));
//加密
Cipher cipher = Cipher.getInstance("DES");
//加密初始化,传入加密模式和秘钥
cipher.init