我在Qt应用程序中使用QCA进行加密/解密。 在服务器端,我使用NodeJS和node-rsa模块。 我可以从我的Qt应用程序成功加密,将其编码为base64并使用node-rsa解密。 解密操作在Qt侧失败。
QByteArray imp;
imp.append(data_from_nodejs);
QString data_to_decrypt = QByteArray::fromBase64(imp);
QCA::Initializer init;
QCA::PrivateKey pk = QCA::PrivateKey::fromPEM(private_key); //pk.canDecrypt() return true
QByteArray inter;
inter.append(data_to_decrypt);
QCA::SecureArray array(inter.data());
QCA::SecureArray array_out;
if(!pk.decrypt(array,&array_out,QCA::EME_PKCS1_OAEP)){
qDebug()<<"decryption failed";
}
data_from_nodejs: “\” VoXLeXxC9eX + KvFpS1lMjjmUPFDJHpwpBNtDPd6r8bodAwISWPMtoUyM1rUyucbaCraPL1oywQ5KweTCQYbxOwLwpBsR6oAIDNCYQ45xN3P5rPZgxWrjKre3HX6FSa8iefTcZWDD3977pCoBXsmaR3PHMHJMCMJE4OjRqEOfFNh66nRaVRb9f8ahJTijyMvGAQagKJd4 + WrZVMJyYGxJTVTP3wQh6FbxdpIAbSEcYgshxcdJoRvmkfpr + OIhjaXrhDiSGl6f4kxzuMMk8wRgpZvXy5rrJ21dyKMzAZ / fA1uOrGwYygJoXNMC35MhZFCdw7XAG5hMBCVwGW5bGVa8fA == \ “”
和
data_to_decrypt: “VY |乙 iKYL9j * \ u001D〜I \” 你们 \ U0001 ^ɚGs 0rL \bDѨC\ u0014ztZU \ u0016 \u007Fơ%8 \ U0001 \ u0006(xjTr`lIMT \ U0004!V v“
感谢您的帮助。