我正在使用节点进行OpenPGP加密。这是我的参考库。当我运行一个演示,我得到以下错误。
var openpgp = require('openpgp'); // use as CommonJS, AMD, ES6 module or via window.openpgp
openpgp.initWorker({ path:'openpgp.worker.js' })
// put keys in backtick (``) to avoid errors caused by spaces or tabs
const pubkey = `-----BEGIN PGP PUBLIC KEY BLOCK-----
...
-----END PGP PUBLIC KEY BLOCK-----`
const privkey = `-----BEGIN PGP PRIVATE KEY BLOCK-----
...
-----END PGP PRIVATE KEY BLOCK-----` //encrypted private key
const passphrase = `yourPassphrase` //what the privKey is encrypted with
const encryptDecryptFunction = async() => {
console.log("init",openpgp)
const privKeyObj = (await openpgp.key.readArmored(privkey)).keys[0]
await privKeyObj.decrypt(passphrase)
const options = {
message: openpgp.message.fromText('Hello, World!'), // input as Message object
publicKeys: (await openpgp.key.readArmored(pubkey)).keys, // for encryption
privateKeys: [privKeyObj] // for signing (optional)
}
console.log("init",options)
openpgp.encrypt(options).then(ciphertext => {
encrypted = ciphertext.data // '-----BEGIN PGP MESSAGE ... END PGP MESSAGE-----'
return encrypted
})
.then(encrypted => {
const options = {
message: await openpgp.message.readArmored(encrypted), // parse armored message
publicKeys: (await openpgp.key.readArmored(pubkey)).keys, // for verification (optional)
privateKeys: [privKeyObj] // for decryption
}
openpgp.decrypt(options).then(plaintext => {
console.log(plaintext.data)
return plaintext.data // 'Hello, World!'
})
})
}
encryptDecryptFunction()
await不能在异步函数之外使用。您可以将async添加到。然后,这样您就可以在里面使用await。
.then(async(encrypted) => {
const options = {
message: await openpgp.message.readArmored(encrypted), // parse armored message
publicKeys: (await openpgp.key.readArmored(pubkey)).keys, // for verification (optional)
privateKeys: [privKeyObj] // for decryption
}
openpgp.decrypt(options).then(plaintext => {
console.log(plaintext.data)
return plaintext.data // 'Hello, World!'
})
})
但是我更倾向于建议按照以下方式重构代码,以消除多余的代码。您不需要它们,因为您使用Async/await。
const encryptDecryptFunction = async () => {
console.log("init", openpgp)
const privKeyObj = (await openpgp.key.readArmored(privkey)).keys[0]
await privKeyObj.decrypt(passphrase)
const options = {
message: openpgp.message.fromText('Hello, World!'), // input as Message object
publicKeys: (await openpgp.key.readArmored(pubkey)).keys, // for encryption
privateKeys: [privKeyObj] // for signing (optional)
}
console.log("init", options)
const { data: encripted } = await openpgp.encrypt(options)
const options = {
message: await openpgp.message.readArmored(encrypted), // parse armored message
publicKeys: (await openpgp.key.readArmored(pubkey)).keys, // for verification (optional)
privateKeys: [privKeyObj] // for decryption
}
const plaintext = await openpgp.decrypt(options);
console.log(plaintext.data)
return plaintext.data // 'Hello, World!'
}
我是ReactJS世界的新手,帮助一个团队将他们的React应用程序部署到Docker容器。我做了以下任务。 在EC2中创建Ubuntu机器并安装Docker引擎 /usr/src/app/src/index。js:1从“React”导入React^^^^^ _compile(内部/模块/cjs/loader.js:723: 23)在对象。_extensions... js(内部/模块/cjs/l
尝试运行lint脚本时出现问题 我不断得到这个错误提示,它似乎只发生在更新我的eslint deps符合airbnb规则(我使用) 错误: 但是,运行以下工作预期: 这是我的. eslintrc文件: 这些是我目前的eslint deps: 任何帮助将是伟大的!非常感谢!
问题内容: 我在运行Java项目时遇到问题。 它使用maven编译,最终得到.jar文件。我今天决定,我将使用log4j代替wimple System.out进行日志记录…在此更改之前,它工作正常 这是我的运行方式 SRV_ADDR指向我的service.jar(带有Launcher类) SRV_LIBS指向log4j-1.2.16.jar 我加了“。;” 一开始希望它会有所帮助,因为提到的文件在
我的一台远程机器上有硒集线器,其他机器也有硒节点。 是有集线器的机器,我有一个本地节点和一个远程节点。 两者都连接到远程集线器,但是chrome不在远程节点上运行,而是在本地运行。 当我运行上面的代码(在远程节点上)时,我得到以下异常: 硒。常见的例外。WebDriverException:Message:u“未知错误:Chrome无法启动:崩溃\n(驱动程序信息:chromedriver=2.1
所有,我这里有一些无法解释行为的代码。它贴在下面。我看了为什么整数溢出会导致C iostream的错误?,但它并没有真正回答我的问题。 因此,我希望这段代码所做的是读入一个整数,打印出该整数的值,读入另一个整数(到同一个变量中),然后打印出这个整数。如果我输入7和2,那么它将按预期工作。但是,如果我为第一个和第二个输入输入2^31(溢出整数1),则第一个输出将显示“x的值=-2147483648”