fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6. import javax.crypto.KeyGenerator;
  7. import javax.crypto.SecretKey;
  8. import java.security.SecureRandom;
  9.  
  10. /* Name of the class has to be "Main" only if the class is public. */
  11. class Main {
  12. public static byte[] generateAesKey(int keySize, String seed) throws Exception {
  13. KeyGenerator keyGen = KeyGenerator.getInstance("AES");
  14. SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
  15. random.setSeed(seed.getBytes());
  16. keyGen.init(keySize, random);
  17. SecretKey secretKey = keyGen.generateKey();
  18. return secretKey.getEncoded();
  19. }
  20.  
  21. public static void main(String[] args) {
  22. try {
  23. // 生成密钥
  24. byte[] keyBytes = generateAesKey(128, "01e99f45b70544f7add40af512bbdd10");
  25.  
  26. // 打印字节数组
  27. System.out.println("密钥字节数组:");
  28. for (byte b : keyBytes) {
  29. System.out.print(b + ", ");
  30. }
  31.  
  32. // 打印十六进制格式
  33. System.out.println("\n\n十六进制格式:");
  34. for (byte b : keyBytes) {
  35. System.out.printf("%02X ", b & 0xFF);
  36. }
  37.  
  38. } catch (Exception e) {
  39. e.printStackTrace();
  40. }
  41. }
  42. }
Success #stdin #stdout 0.3s 63304KB
stdin
Standard input is empty
stdout
密钥字节数组:
-87, 36, 57, 16, 23, 13, 24, -96, 109, 126, 127, -115, -67, -122, -28, -96, 

十六进制格式:
A9 24 39 10 17 0D 18 A0 6D 7E 7F 8D BD 86 E4 A0