1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
| const openpgp = require('openpgp');
const key = ` -----BEGIN PGP PRIVATE KEY BLOCK----- Version: GnuPG v1
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 WezNJNjBW3Yajw== =59+P -----END PGP PRIVATE KEY BLOCK----- `;
const passphrase = 'chen7-7';
(async () => { const { keys: [privateKey] } = await openpgp.key.readArmored(key);
await privateKey.decrypt(passphrase);
const { signature: detachedSignature } = await openpgp.sign({ message: openpgp.cleartext.fromText('叔叔我啊,真的生气了!'), privateKeys: [privateKey], detached: true });
console.log(detachedSignature); })();
|