有没有像本网站那样进行AES加密的示例Java代码?

use*_*636 4 java encryption aes

http://www.hanewin.net/encrypt/aes/aes-test.htm

如果您访问此网站并输入以下内容:

"Key In Hex":        00000000000000000000000000123456

"Plain Text in Hex": 00000000000000000000000000000000
Run Code Online (Sandbox Code Playgroud)

然后单击"加密"按钮,您将看到十六进制中的密文是:

3fa9f2a6e4c2b440fb6f676076a8ba04
Run Code Online (Sandbox Code Playgroud)

有没有一个Java程序可以做到这一点(即是否有一个AES库,它将输入上面的"十六进制输入",上面的"纯文本输入十六进制"并生成十六进制的密文?)?

我将不胜感激任何建议或指向Java示例代码的链接.

Dun*_*nes 9

有关使用JCE类执行此操作的标准方法,请参阅下面的代码.

import javax.crypto.Cipher;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;

public class EncryptionExample {

  public static void main(String[] args) throws Exception {
    final String keyHex = "00000000000000000000000000123456";
    final String plaintextHex = "00000000000000000000000000000000";

    SecretKey key = new SecretKeySpec(DatatypeConverter
        .parseHexBinary(keyHex), "AES");

    Cipher cipher = Cipher.getInstance("AES/ECB/NoPadding");
    cipher.init(Cipher.ENCRYPT_MODE, key);

    byte[] result = cipher.doFinal(DatatypeConverter
        .parseHexBinary(plaintextHex));

    System.out.println(DatatypeConverter.printHexBinary(result));
  }
}
Run Code Online (Sandbox Code Playgroud)

打印:

3FA9F2A6E4C2B440FB6F676076A8BA04