我有一个密钥(例如)“thisist0psecret”,我想将其用作对称加密/解密密钥谷歌 Tink 库 https://github.com/google/tink。我很困惑我无法做到这一点简单的事情。我可以生成new keys(使用各种模板AES128_GCM等),序列化它们,然后用KeysetReader读回它们。但是,在我的一生中,我无法弄清楚如何使用我指定的特定关键字节.
例如,我可以使用 Tink 执行以下操作:
KeysetHandle ksh = KeysetHandle.generateNew(AeadKeyTemplates.AES128_GCM);
Aead aead = AeadFactory.getPrimitive(ksh);
String pt = "hello, world!";
byte[] encbytes = aead.encrypt(pt.getBytes(), null);
byte[] decbytes = aead.decrypt(encbytes, null);
String orig = new String(decbytes);
assert(pt.equals(orig));
但我想将对称密钥字符串设置为我指定的一组字节,例如“thisist0psecret”,然后使用将进行解密的用户的公钥加密该密钥。
这里有任何 Google Tink 专家可以透露一些信息吗?
我是 Tink 的首席开发人员。
如果你的密钥是随机生成的,你可以直接使用微妙的API,参见:https://github.com/google/tink/blob/master/java_src/src/main/java/com/google/crypto/tink/subtle/AesGcmJce.java https://github.com/google/tink/blob/master/java_src/src/main/java/com/google/crypto/tink/subtle/AesGcmJce.java.
不建议这样做,因为微妙的层可能会在没有通知的情况下发生变化(认为它在 Tink 的历史中相对稳定)。
如果您的密钥是密码,您希望使用 Scrypt 或 PBKDF2 等工具从中派生密钥。我们尚未在 Tink 中支持基于本机密码的加密,请提交功能请求,我们将了解如何提供帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)