我需要使用 nCipher HSM 生成 AES256 密钥,然后将它们导出(写入文件)到外部系统中。
KeyGenerator kg = KeyGenerator.getInstance("AES", "nCipherKM");
kg.init(256);
SecretKey key = kg.generateKey();
//No problem until here
byte[] raw = key.getEncoded();
引发安全异常。不会给钥匙。所以我使用了下面的方法。两个密钥的生成方式相同吗?有没有更好的方法来完成我所需要的?
SecureRandom random = SecureRandom.getInstance("RNG", "nCipherKM");
byte[] rand = new byte[32];
random.nextBytes(rand);
SecretKey key = new SecretKeySpec(rand, "AES");
byte[] raw = key.getEncoded();
谢谢,
吠陀