使用openpgp将javascript二进制文件解密为文本

时间:2015-11-06 11:39:05

标签: javascript encryption pgp openpgp openpgp.js

问题在于,当解码图像时,我得到了损坏的二进制数据,我试图将其转换为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装甲类型

1 个答案:

答案 0 :(得分:0)

Base 64用于将字节包装到ASCII装甲中,因此您可以通过面向文本的界面传输二进制数据。您需要传输的是似乎写入pgpMessage的密文。你应该在那里对64位密文进行编码,你不应该对64位明文消息进行编码。