Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.crypto密钥存储另存为空文件_Java_Cryptography - Fatal编程技术网

java.crypto密钥存储另存为空文件

java.crypto密钥存储另存为空文件,java,cryptography,Java,Cryptography,我创建了一个KeyStore对象,并在其中存储了一个SecretKey。然后我将密钥库保存到文件中。当我试图读取密钥库时,它是空的。为什么是空的 KeyStore keystore = KeyStore.getInstance("JCEKS"); char[] password = "password".toCharArray(); keystore.load(null,password); KeyGenerator keygen = KeyGenerator.getInstance("AES

我创建了一个KeyStore对象,并在其中存储了一个SecretKey。然后我将密钥库保存到文件中。当我试图读取密钥库时,它是空的。为什么是空的

KeyStore keystore = KeyStore.getInstance("JCEKS");
char[] password = "password".toCharArray();
keystore.load(null,password);

KeyGenerator keygen = KeyGenerator.getInstance("AES");
keygen.init(256);
SecretKey key = keygen.generateKey();

KeyStore.SecretKeyEntry ske = new KeyStore.SecretKeyEntry(key);
KeyStore.ProtectionParameter pp = new KeyStore.PasswordProtection(password);

keystore.setEntry("superman", ske, pp);

FileOutputStream fos = new FileOutputStream(Directory.KEY);
keystore.store(fos,password);
fos.close();

您正在从同一文件加载密钥库吗?您发布的代码可以工作,添加一个加载文件的代码后,我会得到一个包含正确条目的新密钥库。是的,我是。我还访问了密钥库文件本身并单击了属性,它说它是零字节。当我加载密钥库并尝试访问我的密钥时,会出现以下错误:java.security.InvalidKeyException:没有安装的提供程序支持此密钥:nullReally请在代码中重新检查将密钥库保存到Directory.key的文件名以及加载的文件名。问题中提供的代码起作用,要么加载代码不起作用,要么使用的不是同一个文件。