Encryption 多次注册AeadConfig后解密失败?
我正在加密一些文本并试图对其解密,但是当我使用不同的AeadConfig.register()进行解密而不是加密时,它无法解密。我想知道如何解决这个问题,因为我将在一个活动中加密,在另一个活动中解密。为了在下面给出一个例子,我简化了它 如果我只是将aead作为参数传递,这是可行的,但我不确定这是否是我应该做的事情Encryption 多次注册AeadConfig后解密失败?,encryption,kotlin,tink,Encryption,Kotlin,Tink,我正在加密一些文本并试图对其解密,但是当我使用不同的AeadConfig.register()进行解密而不是加密时,它无法解密。我想知道如何解决这个问题,因为我将在一个活动中加密,在另一个活动中解密。为了在下面给出一个例子,我简化了它 如果我只是将aead作为参数传递,这是可行的,但我不确定这是否是我应该做的事情 private fun deletableEncrypt() { AeadConfig.register() val keysetHandle: KeysetHan
private fun deletableEncrypt() {
AeadConfig.register()
val keysetHandle: KeysetHandle = KeysetHandle.generateNew(AeadKeyTemplates.AES128_GCM)
val aead: Aead = AeadFactory.getPrimitive(keysetHandle)
val plainText = "Hello world"
val aad = "masterpassword"
val cipherText = aead.encrypt(plainText.toByteArray(), aad.toByteArray())
Log.d(TAG, cipherText.toString())
dbHelper.insertNewRow("text", cipherText,
"moreText")
}
private fun deleteableDecrypt() {
AeadConfig.register()
val keysetHandle: KeysetHandle = KeysetHandle.generateNew(AeadKeyTemplates.AES128_GCM)
val aead: Aead = AeadFactory.getPrimitive(keysetHandle)
val aad = "masterpassword"
val cipherText = dbHelper.getAllEncrypts()[0]
val decrypted = aead.decrypt(cipherText, aad.toByteArray())
}
现在解密抛出一个异常。我认为这是由aeadConfig引起的,但我不知道如何只注册一次,所以一旦解决了这个问题,它就不会再引发异常。我实际上发现了错误,我每次都会生成一个新的密钥集,而我应该存储它。有关如何执行此操作的说明,请参见此处的“存储密钥集”部分