解密用Java/Scala加密的Rails属性

解密用Java/Scala加密的Rails属性,java,ruby-on-rails,scala,encryption,Java,Ruby On Rails,Scala,Encryption,我已经看过了,但是它没有提供我想要的帮助(除非我误解了…如果是,请告诉我) 我使用的是用默认值加密的attr_,我相信这是其中之一 algorithm: 'aes-256-gcm' mode: :per_attribute_iv 我将在数据库中存储以下内容: encrypted_name: "6t2JNg471ERqz4v3NOcfxI7qzxRhzzfBvwoz", encrypted_name_iv: "dzPBH0tiYjRs1DJ9" 当试图从JVM中解密这些时 val keySpe

我已经看过了,但是它没有提供我想要的帮助(除非我误解了…如果是,请告诉我)

我使用的是用默认值加密的attr_,我相信这是其中之一

algorithm: 'aes-256-gcm'
mode: :per_attribute_iv
我将在数据库中存储以下内容:

encrypted_name: "6t2JNg471ERqz4v3NOcfxI7qzxRhzzfBvwoz",
encrypted_name_iv: "dzPBH0tiYjRs1DJ9"
当试图从JVM中解密这些时

val keySpec = new SecretKeySpec('MyKeyHere'.getBytes, "AES")
val spec = new GCMParameterSpec(16 * 8, "xI7qzxRhzzfBvwoz".getBytes)
val cipher = Cipher.getInstance("AES/GCM/PKCS5Padding", "SunJCE")
cipher.init(Cipher.DECRYPT_MODE, keySpec, spec)
val sansAuth = encrypted_name.dropRight(16)
cipher.doFinal((encrypted_name_iv + encrypted_name).getBytes)
我为这件事苦恼

javax.crypto.AEADBadTagException: Tag mismatch!
我是否完全错误地处理了这个问题(我想我是…?)?加密的_名称的最后16个字节应该是与GCMParameterSpec一起使用的标记是吗

非常感谢您的帮助