从文件中读取密钥

时间:2016-06-23 08:38:04

标签: java file cryptography

我正在使用以下内容生成随机密钥,并希望将其存储到文件中。我打印出值。

String keyfile = "key.txt";

KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(keylen);
SecretKey secretKey = keyGen.generateKey();
byte[] encoded = secretKey.getEncoded();
FileOutputStream output = new FileOutputStream(new File(keyfile));
IOUtils.write(encoded, output);

System.out.println("Secret key is: " + encoded.toString());

然后我用它来阅读:

FileInputStream f = new FileInputStream(keyfile);
byte[] data = IOUtils.toByteArray(f);
System.out.println("Key is: " + data.toString());

但是,打印的值不匹配。我究竟做错了什么? 这些值不应该相同吗?

2 个答案:

答案 0 :(得分:0)

byte[].toString()未被Object.toString()覆盖,因此不依赖于数组的内容。您需要Arrays.toString()

答案 1 :(得分:0)

byte []的toString()返回HashCode,并且只要数组不相同(等于),即使内容相同,数组的Hashcode也可能不同。