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示例代码的链接.
有关使用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