我想知道是否有任何密钥库实现允许存储关键属性,比如名称/值对,以及对称密钥的值?看起来JKS和JCEKS只允许存储密钥值和密钥的别名,因此寻找其他选项(如果有的话)。
无论名称/价值对如何处理都没有关系,只要它们可以存储(它应该由应用程序来理解它们,真的)。
所以我想把它放在钥匙店里是:
alias1 - keyvalue1 - metadata1=[md1=value11 md2=value12 md3=value13 ...]
alias2 - keyvalue2 - metadata2=[md1=value21 md2=value22 md3=value23 ...]
...
不要关心元数据的编码,但应该可以单独检索。
编辑:
KeyStore.SecretKeyEntry
有一个CTOR接受Set
Attribute
个KeyStore.setEntry
,使用SecretKeyEntry
可以传递包含其元数据的removeAttr
个visibility
。不幸的是,看起来默认的JCEKS实现只是忽略了属性。
答案 0 :(得分:0)
如果知道关键是申请工作,为什么不做下面的事情?
对于String键。
Key:“rabbit?color = white& size = small& fluffy = true”
或者您可以解析为base64并拥有
键:cmFiYml0P2NvbG9yPXdoaXRlJnNpemU9c21hbGwmZmx1ZmZ5PXRydWU =
我在这里看到的问题是,对于字符串,您将无法将键“兔子”与属性解除关联。例如,在JKS上,您将上面的密钥作为-alias cmFiYml0P2NvbG9yPXdoaXRlJnNpemU9c21hbGwmZmx1ZmZ5PXRydWU=
,这会强制您遍历所有密钥以找到正确的密钥。