DES加密算法代码
- 格式:docx
- 大小:36.83 KB
- 文档页数:2
DES加密算法代码
java实现DES加密
1.准备算法所需要的密钥
在Java中,DES加密算法需要一个8字节长的密钥,这里使用原始的8字节长的密钥来实现DES加密算法,同时,还有一种是“密钥扩展”,可以将8字节长的密钥扩展为16字节长,只需要多添加8个字节,后面8个字节可以跟前面8字节保持一致即可,即扩展后的密钥和原始密钥共享后八个字节即可。
byte [] keyBytes = {0x11, 0x22, 0x4F, 0x58, (byte) 0x88,
0x10, 0x40, 0x38,
0x28, 0x25, 0x79, 0x51, (byte) 0xCB, (byte) 0xDD, 0x55, 0x66,
0x77, 0x29, 0x74, (byte) 0x98, 0x30, 0x40, 0x36, (byte)
0xE2};
下面介绍如何用Java来实现原始的8字节长的密钥:
// 生成key
KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
keyGenerator.init(new SecureRandom(keyBytes));
SecretKey key = keyGenerator.generateKey(;
2. 设置加密模式(Cipher Block Chaining Mode,简称CBC模式) 在Java中,DES加密算法可以支持三种不同的加密模式:ECB,CBC,CFB。其中ECB模式为最原始的模式,它不需要任何附加的参数,而CBC模式需要一个8字节的初始向量(Initial Vector,IV)参数,CFB模式需要一个1字节或8字节的变量参数,它们用来增加加密的强度。
这里,我们使用CBC模式,它是最常用的DES加密模式,下面是设置CBC模式所需要的参数:
// 创建Cipher对象,指定其支持的DES算法
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
// 用密匙初始化Cipher对象
IvParameterSpec param = new IvParameterSpec(iv);
cipher.init(Cipher.ENCRYPT_MODE, key,param);
3.加密