【发布时间】:2020-06-23 03:05:13
【问题描述】:
我正在尝试解密使用 nodejs 加密的文本。简单地说,我试图从服务器端加密数据,并在调用 API 时将其解密到客户端。
这是我在服务器端的代码。
function encrpt(text) {
const seckey = '12345678123456781234567812345678';
var aesDec = crypto.createCipheriv("aes-256-ecb", seckey , '');
var output = aesDec.update(text, 'utf8', 'hex');
output += aesDec.final('hex');
return output;
}
这是我在客户端用于解密的代码,它位于 Kotlin 中。
fun String.test() {
val skc = SecretKeySpec("12345678123456781234567812345678".toByteArray(Charsets.UTF_8), "AES")
val cipher = Cipher.getInstance("AES/ECB/PKCS5Padding")
cipher.init(Cipher.DECRYPT_MODE, skc)
val result = cipher.doFinal(this.toByteArray())
println(result.toString())
}
但是这样做我在 android studio 中得到了javax.crypto.BadPaddingException: error:1e000065:Cipher functions:OPENSSL_internal:BAD_DECRYPT。
【问题讨论】:
标签: javascript android node.js kotlin encryption