使用Java语言写出des加密算法的实现代码
时间: 2024-06-11 12:05:41 浏览: 106
用java写的des算法实现加密解密
3星 · 编辑精心推荐
以下是Java语言实现DES加密算法的示例代码:
```
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
public class DesEncryption {
private static final String ENCRYPTION_ALGORITHM = "DES";
public static SecretKey generateKey() throws NoSuchAlgorithmException {
KeyGenerator keyGenerator = KeyGenerator.getInstance(ENCRYPTION_ALGORITHM);
return keyGenerator.generateKey();
}
public static String encrypt(String message, SecretKey secretKey) throws Exception {
Cipher cipher = Cipher.getInstance(ENCRYPTION_ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
byte[] encrypted = cipher.doFinal(message.getBytes());
return Base64.getEncoder().encodeToString(encrypted);
}
public static String decrypt(String encryptedMessage, SecretKey secretKey) throws Exception {
Cipher cipher = Cipher.getInstance(ENCRYPTION_ALGORITHM);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
byte[] decrypted = cipher.doFinal(Base64.getDecoder().decode(encryptedMessage));
return new String(decrypted);
}
public static void main(String[] args) throws Exception {
String message = "Hello, World!";
SecretKey secretKey = generateKey();
String encryptedMessage = encrypt(message, secretKey);
String decryptedMessage = decrypt(encryptedMessage, secretKey);
System.out.println("Original message: " + message);
System.out.println("Encrypted message: " + encryptedMessage);
System.out.println("Decrypted message: " + decryptedMessage);
}
}
```
该代码实现了以下功能:
- 生成一个随机的DES加密密钥。
- 使用密钥加密一个字符串,并将加密结果转换成Base64字符串。
- 使用密钥解密一个Base64字符串,并将解密结果转换成原始字符串。
在 `main` 方法中,我们可以看到如何使用这些功能来加密和解密一个字符串。注意,由于DES加密算法已经过时,不再被推荐使用。如果需要更高级的加密算法,请使用AES等更安全的算法。
阅读全文