问题在于,当解码图像时,我得到了损坏的二进制数据,我试图将其转换为base64,但显示无效,是否有解密pgp加密图像有效
我正在使用这个库,告诉我它对解密二进制文件有效吗? http://openpgpjs.org/
ENCRYPT:
var key = request.data.publicKey;
var publicKey = openpgp.key.readArmored(key);
var base64Message = request.data.message;//btoa(request.data.message); // encoding binary data directly
openpgp.encryptMessage(publicKey.keys, base64Message).then(function(pgpMessage) {
console.log('encrypted');
console.log(pgpMessage);
sendResponse({result: pgpMessage});
}).catch(function(error) {
console.log(error);
});
解密:
var key = openpgp.key.readArmored(request.data.privateKey);
console.log(key);
if(key.keys.length > 0)
{
key = key.keys[0];
key.decrypt(request.data.password);
var message = openpgp.message.readArmored(request.data.message); // error can't read pgp encoded binary data
openpgp.decryptMessage(key,message).then(function(plaintext) {
//do stuff...plaintext - is binary data in text
});
}
我直接对二进制编码,然后尝试解码,但是我得到一个错误:
未知的ASCII装甲类型
答案 0 :(得分:0)
Base 64用于将字节包装到ASCII装甲中,因此您可以通过面向文本的界面传输二进制数据。您需要传输的是似乎写入pgpMessage
的密文。你应该在那里对64位密文进行编码,你不应该对64位明文消息进行编码。