2015-08-15 90 views
1

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

将这个变量从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> 

回答

0

拆除'解决了这个问题:

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

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