java密钥存储实现允许存储具有密钥值的属性?
我想知道是否有任何密钥存储实现允许存储密钥属性,比如名称/值对,以及对称密钥的值?看起来JKS和JCEKS只允许存储键值和键名别名,因此需要寻找其他选项(如果有的话)
不管名称/值对是如何处理的,只要它们可以被存储(实际上,这取决于应用程序对它们的理解)
所以我想把它放在密钥存储中:
alias1 - keyvalue1 - metadata1=[md1=value11 md2=value12 md3=value13 ...]
alias2 - keyvalue2 - metadata2=[md1=value21 md2=value22 md3=value23 ...]
...
不关心元数据的编码,但它应该可以单独检索
编辑:
KeyStore.SecretKeyEntry
有一个接受Set
{KeyStore.setEntry
的CTOR,使用KeyStore.setEntry
可以传递这样的SecretKeyEntry
包括其元数据。不幸的是,默认的JCEKS实现似乎忽略了这些属性
# 1 楼答案
如果应用程序的工作是理解关键,那么你为什么不做下面这样的事情呢
一个字符串键
或者你可以解析到base64
我在这里看到的问题是,对于一个字符串,您将无法将键“rabbit”与属性解除关联。例如,在JKS上,上面的键是
-alias cmFiYml0P2NvbG9yPXdoaXRlJnNpemU9c21hbGwmZmx1ZmZ5PXRydWU=
,这将迫使您遍历所有键以找到正确的键