我在 javascript 中使用 eccrypto 库使用 ECIES 算法 (curve-secp256k1) 进行加密。在 JS 代码中加密生成的密码无法在 Kotlin 中解密。
这是Javascript代码。
var eccrypto = require("eccrypto");
eccrypto.encrypt(publicKeyA, Buffer.from("Sic Mundus Creatus Est")).then(function(encrypted) {
val ciphertext = encrypted.ciphertext
//the hex encoded ciphertext is then sent to the server
}
这是kotlin的解密代码
val cipherBytes = DatatypeConverter.parseHexBinary(ciphertext)
val cipher: Cipher = Cipher.getInstance("ECIES", "BC")
cipher.init(Cipher.DECRYPT_MODE, privateKeyA)
print( cipher.doFinal(cipherBytes) )
使用此代码进行解密,我得到了一个坏块异常。
但是,如果我只是使用Java进行加密和解密,则没有问题。此外,Javascript 中的加密和解密也可以正常工作。
有什么我想念的吗?