21xrx.com
2024-11-08 22:20:39 Friday
登录
文章检索 我的文章 写文章
我学习Java中的DES加密解密
2023-06-10 19:15:42 深夜i     --     --
Java DES 加密解密算法

作为一名Java开发者,我一直对加密解密算法着迷。最近,我开始了解DES加密解密算法,并希望能与大家分享一些我的经验。

首先,让我们回顾一下DES加密解密算法是如何工作的。简单来说,它使用一个密钥来将明文加密成密文,并使用相同的密钥来将密文解密回明文。由于该密钥仅存储在发送方和接收方中,因此这种算法非常安全。

让我们看一下Java中如何实现DES加密解密。以下是我的代码示例:


import javax.crypto.Cipher;

import javax.crypto.KeyGenerator;

import javax.crypto.SecretKey;

import java.security.SecureRandom;

public class DESExample {

  public static void main(String[] args) {

    try {

      String plainText = "Hello World";

      String encryptionKey = "MySecretKey";

      byte[] encryptedBytes = encrypt(plainText, encryptionKey);

      String decryptedText = decrypt(encryptedBytes, encryptionKey);

      System.out.println("Plain Text: " + plainText);

      System.out.println("Encrypted Text: " + new String(encryptedBytes));

      System.out.println("Decrypted Text: " + decryptedText);

    } catch (Exception e) {

      e.printStackTrace();

    }

  }

  private static byte[] encrypt(String plainText, String encryptionKey) throws Exception{

    SecureRandom secureRandom = new SecureRandom(encryptionKey.getBytes());

    KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");

    keyGenerator.init(secureRandom);

    SecretKey secretKey = keyGenerator.generateKey();

    Cipher cipher = Cipher.getInstance("DES");

    cipher.init(Cipher.ENCRYPT_MODE, secretKey);

    return cipher.doFinal(plainText.getBytes());

  }

  private static String decrypt(byte[] encryptedBytes, String encryptionKey) throws Exception{

    SecureRandom secureRandom = new SecureRandom(encryptionKey.getBytes());

    KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");

    keyGenerator.init(secureRandom);

    SecretKey secretKey = keyGenerator.generateKey();

    Cipher cipher = Cipher.getInstance("DES");

    cipher.init(Cipher.DECRYPT_MODE, secretKey);

    byte[] decryptedBytes = cipher.doFinal(encryptedBytes);

    return new String(decryptedBytes);

  }

}

如您所见,我们需要使用javax.crypto包中的类来执行加密解密操作。我们需要指定要使用的算法和密钥生成器。

三个

文章总结:Java中实现DES加密解密只需使用javax.crypto包中的类,指定算法和密钥生成器即可。该算法是非常安全的,因为密钥仅存储在发送方和接收方之间。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复