Home >Java >javaTutorial >How to implement DES encryption algorithm using java
How to use Java to implement the DES encryption algorithm
Overview:
DES (Data Encryption Standard) is a symmetric encryption algorithm that is widely used in data in the computer field Encrypting and decrypting. In Java, we can use the javax.crypto library to implement the DES encryption algorithm.
Steps:
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax. crypto.spec.SecretKeySpec;
KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");
SecretKey secretKey = keyGenerator.generateKey();
byte[] keyBytes = secretKey.getEncoded();
SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "DES");
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
// Get the initialization vector
byte[] iv = new byte[cipher.getBlockSize()];
SecureRandom secureRandom = new SecureRandom( );
secureRandom.nextBytes(iv);
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, new IvParameterSpec(iv));
byte[] encryptedBytes = cipher.doFinal(input.getBytes());
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, new IvParameterSpec(iv));
byte[] decryptedBytes = cipher.doFinal(encryptedBytes );
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey ;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.SecureRandom;
public class DESExample {
public static void main(String[] args) throws Exception { // 生成密钥 KeyGenerator keyGenerator = KeyGenerator.getInstance("DES"); SecretKey secretKey = keyGenerator.generateKey(); byte[] keyBytes = secretKey.getEncoded(); // 转换密钥 SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "DES"); // 创建加密实例 Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding"); // 初始化加密实例 byte[] iv = new byte[cipher.getBlockSize()]; SecureRandom secureRandom = new SecureRandom(); secureRandom.nextBytes(iv); cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, new IvParameterSpec(iv)); // 加密数据 String input = "Hello, world!"; byte[] encryptedBytes = cipher.doFinal(input.getBytes()); // 解密数据 cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, new IvParameterSpec(iv)); byte[] decryptedBytes = cipher.doFinal(encryptedBytes); // 打印结果 System.out.println("明文:" + input); System.out.println("加密后:" + new String(encryptedBytes)); System.out.println("解密后:" + new String(decryptedBytes)); }
}
Summary:
Through the above steps, we can use Java to implement the DES encryption algorithm. In actual development, you can make reasonable selections of encryption algorithms and encryption modes according to your own needs, and make appropriate adjustments according to specific business scenarios. However, please note that the DES encryption algorithm is obsolete and is no longer recommended. A more secure option is the AES encryption algorithm.
The above is the detailed content of How to implement DES encryption algorithm using java. For more information, please follow other related articles on the PHP Chinese website!