我正在使用java密钥库来存储和检索加密密钥。当我的密钥库大小很小时,它的工作速度更快。但是,一旦我的密钥库大小增加,密钥库操作就会变慢。
我正在使用Linux平台,Java版本Jdk_1.8。和safenet作为提供者。
答案 0 :(得分:2)
我一直面临着与执行速度相关的同一问题因操作系统平台的不同而异。
Jvm在内存中加载密钥库。它将哈希表集合作为内部存储。
Hashtable已同步。
每当您从密钥库执行get操作时,它都会从内存密钥库而不是从物理密钥库返回它。 你可以在linux base OS中使用(" top" - %wa section)命令来确认它。
密钥库使用哈希表,它是性能描述背后的根本原因。
我通过在初始化项目时将所有密钥从keystore加载到ConcurrentHashMap来解决了这个问题。后来, 所有读取操作都将从MAP而不是密钥库执行。 并确保所有写操作都将在密钥库和MAP上执行。
答案 1 :(得分:2)
当我将safenet jar文件用作密钥存储提供程序时,当我将safenet作为提供程序删除时,我们遇到了这个问题。使用java的默认提供程序然后我没有遇到任何与性能相关的问题。