我有一个名为file.pgp PGP加密文件,它不能以ascii-armor但二进制。它看起来像这样:编码PGP加密二进制base64为NodeJS
�P��3E��Q� �i`p���
����&�9
�ֻ�<P�+�[����R0��$���q����VJ��hu���bE"2��M1r��j�K�v�@6�3E�Ҳ�A�W{Z
��FEԭ�YV��6g�V���e�,I�Zpw�r��8׆
�mc��h��n���k�p�>JH\�G�6��M1|>�G�fl�J���6��
ج��
�_��y8�..{���_⮵���F���~�vt
�8AB;z����m^��Xp���VӅCzD�ճn
����{+d�3�"��N�1p�
当我使用GNU的base64编码器,我得到这个字符串:
$ cat file.gpg | base64 hQEMA1DujfGcM0WiAQgAvcIMUfydsSDmaWBwnoWACrsapePpJpU5Co68276SK2XVBqY2YyNUgzAF oawkpMjfcQS+7+nJVkrb7Gh1h4L9YkUiMo+dTTFyzs5qskuECNZ25UA2rzNF+NKyq0HZV3sXWg3P AwZNZbNJIAc4xWlBNfsNoda7zhk8UJArj1sAiKPw5VIKjahGRdSt2FlWurs2Z5EXVriLG0aHZbAs SeCjWnB3Aalyoo8414aGbWOr5WjU7rpugBLw52uAcJgcPkpIXMJjCEf4gTbc1k0xfD4YjUejZmyH H0rYAAHw3DbjyQrYrLmHC9Vfm655HBU40xceLi5/e4n2Dxge+F/irrW9o9JGAfCf5OZ+gXZ0Ggv9 t620m704QUI7eryy0ddtXoGsWHCxu4gaVtOFQ3pEp9WzZghuC5j1/c57K2T4lzP+IvEfo07fMRFw tg==
随着GNU工具的base64,我可以成功它重新转换到发起pgp文件并解密。
我想在NodeJS中实现一个类似的工具。我可以成功转换ASCII文本而不是二进制内容。我的临时代码如下所示:
var stdin = process.openStdin();
var data = "";
stdin.on('data', function(chunk) {
data += chunk;
});
stdin.on('end', function() {
console.log(new Buffer(text, 'binary').toString('base64'));
});
用法:$ cat file.gpg | node base64.js
输出看起来是什么GNU的base64报价不同。此外,我无法将其转换回原始文件.gpg文件 - GnuPG找不到任何要解密的文件。
我不知道最终的解决方案是什么,但我认为问题的一部分,将是,当你添加'chunk'到'data',它被转换为字符串而不是二进制。我很确定Node有一个缓冲区的概念,它将用于二进制内容。 – theGleep