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.加密