des加解密算法java代码实现密钥明文密文用户输入
时间: 2023-08-05 18:05:23 浏览: 107
Java使用Hutool实现AES、DES加密解密的方法
以下是Java代码实现DES加解密算法,包括密钥明文、密文和用户输入:
```java
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.Scanner;
public class DesEncryptionExample {
public static void main(String[] args) throws Exception {
Scanner scanner = new Scanner(System.in);
// 生成DES密钥
KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
keyGenerator.init(56);
SecretKey secretKey = keyGenerator.generateKey();
// 显示密钥明文
byte[] keyBytes = secretKey.getEncoded();
String keyPlainText = new String(keyBytes, StandardCharsets.UTF_8);
System.out.println("密钥明文:" + keyPlainText);
// 加密用户输入
System.out.print("请输入要加密的内容:");
String plainText = scanner.nextLine();
byte[] plainBytes = plainText.getBytes(StandardCharsets.UTF_8);
Cipher cipher = Cipher.getInstance("DES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] cipherBytes = cipher.doFinal(plainBytes);
// 显示密文
String cipherText = Base64.getEncoder().encodeToString(cipherBytes);
System.out.println("密文:" + cipherText);
// 解密密文
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decryptedBytes = cipher.doFinal(cipherBytes);
// 显示解密后的明文
String decryptedText = new String(decryptedBytes, StandardCharsets.UTF_8);
System.out.println("解密后的明文:" + decryptedText);
}
}
```
在运行程序时,用户可以输入要加密的内容,程序会随机生成一个DES密钥并使用该密钥对用户输入进行加密,然后显示密钥明文和密文,并最终将密文解密并显示出解密后的明文。
阅读全文