如何用 OpenPGP.js 简单地加密一个字符串?
How to simply encrypt a string with OpenPGP.js?
我只想做这样的事情:
function encryptString(string, publicKey) {
// do stuff....
return encryptedString;
}
我查看了 OpenPGP 和 JSEncrypt。 JSEncrypt 似乎根本不起作用。只是 returns 错误。当我需要实时同步计算时,OpenPHP 需要异步调用。
关于我可能做错了什么有什么想法吗?
对于 JSEncrypt,我得到的错误很可能是因为我的密钥很长。这个库似乎支持短字符串。
我有点迷茫。任何朝着正确方向的推动都会受到赞赏?
这对我有用(虽然它肯定不优雅):
function pgp_encryptValues(cvv, cc)
{
var keyId = '{{ $keyId }}';
var base64EncodedPublicKey = '{{ $publicKey }}';
var CardDetails = {
"number": cc,
"cvv" : cvv
};
const stringified = JSON.stringify(CardDetails);
const pciEncryptionKey = base64EncodedPublicKey;
const decodedPublicKey = atob(pciEncryptionKey)
async function setPgpCode()
{
const options = {
message: openpgp.message.fromText(stringified),
publicKeys: (await openpgp.key.readArmored(decodedPublicKey)).keys
}
return openpgp.encrypt(options).then((ciphertext) =>
{
var cipherResultEncoded = btoa(ciphertext.data);
jQuery("#encryptedData").val(cipherResultEncoded);
jQuery("#keyID").val(keyId);
return {
encryptedData: btoa(ciphertext.data),
keyId: keyId
}
})
};
if (promiseStarted) {
while (promiseStarted)
{
// wait til its done...
}
}
promiseStarted = true;
promiseEnded = false;
setPgpCode();
promiseStarted = false;
promiseEnded = true;
}
非常 hackkey,我可能会随着时间的推移改进它,但至少它有效!
我只想做这样的事情:
function encryptString(string, publicKey) {
// do stuff....
return encryptedString;
}
我查看了 OpenPGP 和 JSEncrypt。 JSEncrypt 似乎根本不起作用。只是 returns 错误。当我需要实时同步计算时,OpenPHP 需要异步调用。
关于我可能做错了什么有什么想法吗?
对于 JSEncrypt,我得到的错误很可能是因为我的密钥很长。这个库似乎支持短字符串。
我有点迷茫。任何朝着正确方向的推动都会受到赞赏?
这对我有用(虽然它肯定不优雅):
function pgp_encryptValues(cvv, cc)
{
var keyId = '{{ $keyId }}';
var base64EncodedPublicKey = '{{ $publicKey }}';
var CardDetails = {
"number": cc,
"cvv" : cvv
};
const stringified = JSON.stringify(CardDetails);
const pciEncryptionKey = base64EncodedPublicKey;
const decodedPublicKey = atob(pciEncryptionKey)
async function setPgpCode()
{
const options = {
message: openpgp.message.fromText(stringified),
publicKeys: (await openpgp.key.readArmored(decodedPublicKey)).keys
}
return openpgp.encrypt(options).then((ciphertext) =>
{
var cipherResultEncoded = btoa(ciphertext.data);
jQuery("#encryptedData").val(cipherResultEncoded);
jQuery("#keyID").val(keyId);
return {
encryptedData: btoa(ciphertext.data),
keyId: keyId
}
})
};
if (promiseStarted) {
while (promiseStarted)
{
// wait til its done...
}
}
promiseStarted = true;
promiseEnded = false;
setPgpCode();
promiseStarted = false;
promiseEnded = true;
}
非常 hackkey,我可能会随着时间的推移改进它,但至少它有效!