Openpgp使用PGP加密



我试图使用PGP加密消息,但我收到一个错误,状态为:

ReferenceError: TextDecoder is not defined
at Object.decodeUTF8 (node_modules/openpgp/src/util.js:225:21)
at Do.read (node_modules/openpgp/src/packet/userid.js:78:25)
at callback (node_modules/openpgp/src/packet/packetlist.js:82:28)
at Xs (node_modules/openpgp/src/packet/packet.js:282:13)
at node_modules/openpgp/src/packet/packetlist.js:96:11

我的代码是这样的:

const plainData = random.uuid()
const publicKeyArmored = fs.readFileSync('/path/any.asc').toString();
const publicKey = await openpgp.readKey( { armoredKey: publicKeyArmored } )
console.log(publicKey)

当我打印publicKeyArmored时,一切正常。一旦它到达之前显示的console.log,错误就会出现

这就是我完成这项工作的原因,我希望它能帮助到某人:

import * as openpgp from 'openpgp'
const plainText = 'Any text you wanna encrypt'
const textEncoding = await import('text-encoding-utf-8')
global.TextEncoder = textEncoding.TextEncoder
global.TextDecoder = textEncoding.TextDecoder
const publicKeyArmored = fs.readFileSync('/path/any.asc').toString();
const publicKey = await openpgp.readKey({ armoredKey: publicKeyArmored })
const encrypted = await openpgp.encrypt({
message: openpgp.Message.fromText(plainText),
publicKeys: [publicKey]
})
console.log(encrypted)

最新更新