繁体   English   中英

OpenPGP.js将PGP块传递给javascript变量

[英]OpenPGP.js passing PGP block to javascript variable

我已经使用OpenPGP.js设置了一个对消息进行加密的文件。 我需要将PGP块设置为javascript变量,以便可以将其传递给加密/解密函数。 当我正常粘贴时,它会将脚本分成多行。 我尝试使用php json_encode-这传递给加密函数,但readArmored收到错误“未知的ASCII装甲类型”。

将变量从php传递到javascript的最佳方法是什么,或者如何正确解码以在javascript中使用?

这是代码:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <script src="jquery.min.js"></script>
    <script src="openpgp.js"></script>
</head>
<body>

<p>
    Private:<br>
    <textarea id="private" style="width: 500px; height: 100px;"></textarea>
</p>
<p>
    Passphrase:<br>
    <input id="passphrase" style="width: 500px;">
</p>
<p>
    Public:<br>
    <textarea id="public" style="width: 500px; height: 100px;"></textarea>
</p>
<p>
    Encrypted:<br>
    <textarea id="encrypted" style="width: 500px; height: 100px;"></textarea>
</p>
<p>
    Decrypted:<br>
    <textarea id="decrypted" style="width: 500px; height: 100px;"></textarea>
</p>

<?php
$privateKey = "-----BEGIN PGP PRIVATE KEY BLOCK-----
...
-----END PGP PRIVATE KEY BLOCK-----";
$privateKey = json_encode($privateKey);

$publicKey = "-----BEGIN PGP PUBLIC KEY BLOCK-----
...
-----END PGP PUBLIC KEY BLOCK-----";
$publicKey = json_encode($publicKey);
?>
<script>

var privateKey = '<?php echo $privateKey; ?>';
var publicKey = '<?php echo $publicKey; ?>';
var passcode = 'pass1234';
$('#passphrase').val(passcode);
$('#private').val(privateKey);
$('#public').val(publicKey);
encrypt(publicKey, 'Hello!!!');

function encrypt(pubkey, message){
    var publicKey = openpgp.key.readArmored(pubkey);
    console.log(publicKey);
    openpgp.encryptMessage(publicKey.keys, message).then(function(pgpMessage) {
        // success
        $('#encrypted').val(pgpMessage);

    }).catch(function(error) {
        // failure
        console.log(error);
    });
}

</script>
</body>
</html>

删除''解决了问题:

var privateKey = '<?php echo $privateKey; ?>';
var publicKey = '<?php echo $publicKey; ?>';

var privateKey = <?php echo $privateKey; ?>;
var publicKey = <?php echo $publicKey; ?>;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM