JS加密和PHP(RSA)的解密

发布于 2025-01-23 15:39:48 字数 2124 浏览 2 评论 0原文

我将库“ jsencrypt”用于js

html& JS& ajax到php(将加密的文本发送到PHP文件以进行解密)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>RSA js - php</title>
    <script type="text/javascript" src="https://passport.cnblogs.com/scripts/jsencrypt.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>

<script>

var encrypt = new JSEncrypt();
const servPubKeyPem = '-----BEGIN PUBLIC KEY-----\
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApa35WYXLyAIoIikbTU7J\
qQyltZX+zj8ea2bwCcs0rVcpSqMsYYWElQhvGXwSG1Dnd1jY3kNoqOvxb0oRToPj\
wLtx4xLh/RrH5eb9Xhssmo+KYhHFPu/FDBeAy4RQyP/Rv4CIIjWscj3aCiBDPrrM\
S6olwPtCRPsszG4TuUe29pW60JNCnU/1o+7rfjOCecdJpvVvqRW2vN4yxgkjAsf6\
UYyrnd9NXCaElG7X3jYKX84PSBTfttIHUthu+u37FLFUoKOZwqO4Lv0OfacevFCJ\
T4OoMnibeiygSVu8y94MtODp2SMCJ2OteKz8/11uzU27T4x9odS/DrevBebY2V5I\
94cpjyHVzJvNxqrwQ7nNOk0Y7rPvLvKfIGXXD708LRqMNpYZwj9Wu4aOXaxC6myW\
lguGT+OX3TfFzQ1dLyslGTiuy9f41AOJiK+PUnTZh84UALtnSnS62bM39+OaWHZc\
xlI7lHDK8mYxgzp9Us6WvLRBH15j3sSNV+GWCLOIk8Y6UIV/RYMCUNdVahiVqOH8\
0vevhdGZQHTLKmNdaiqCOI9R0hZLbFLzkph/kNnFKRlI0MoYn8Tqg2BRIPFYizPf\
eK+y4nmvJhmiMq3ZzUmVApt2deufZIJmNfqmnDyMKOICnYxcH0zJCrKmBmlM9u1i\
PMIXYCIshW2D3E1ACCPOw3ECAwEAAQ==\
-----END PUBLIC KEY-----'
    encrypt.setPublicKey(servPubKeyPem);
    var encryptedText = encrypt.encrypt('Hello my friend!');

    $.ajax({
        type: "POST",
        url: 'test.php',
        data: {'encryptedText' : encryptedText},
        success: function(data) {
            
        }
    });
</script>

</body>
</html>

<?php

    $encryptedText = $_POST['encryptedText'];

    $priKeyPem = file_get_contents('../php/priKey.pem');
    
    $priKey = openssl_pkey_get_private($priKeyPem); //PriKey - PrivateKey - (he is work) 
  openssl_private_decrypt($encryptedText, $decryptedText, $priKey);

    # but $decryptedText == null ...

?>

我需要在JS中加密文本,在PHP和PHP中通过加密文本进行了加密,但是在PHP中,我得到了“ null” ...请帮助:/

I use the library "JSEncrypt" for JS

HTML & JS & AJAX to PHP (send encrypted text to php file for decryted)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>RSA js - php</title>
    <script type="text/javascript" src="https://passport.cnblogs.com/scripts/jsencrypt.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
</head>
<body>

<script>

var encrypt = new JSEncrypt();
const servPubKeyPem = '-----BEGIN PUBLIC KEY-----\
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEApa35WYXLyAIoIikbTU7J\
qQyltZX+zj8ea2bwCcs0rVcpSqMsYYWElQhvGXwSG1Dnd1jY3kNoqOvxb0oRToPj\
wLtx4xLh/RrH5eb9Xhssmo+KYhHFPu/FDBeAy4RQyP/Rv4CIIjWscj3aCiBDPrrM\
S6olwPtCRPsszG4TuUe29pW60JNCnU/1o+7rfjOCecdJpvVvqRW2vN4yxgkjAsf6\
UYyrnd9NXCaElG7X3jYKX84PSBTfttIHUthu+u37FLFUoKOZwqO4Lv0OfacevFCJ\
T4OoMnibeiygSVu8y94MtODp2SMCJ2OteKz8/11uzU27T4x9odS/DrevBebY2V5I\
94cpjyHVzJvNxqrwQ7nNOk0Y7rPvLvKfIGXXD708LRqMNpYZwj9Wu4aOXaxC6myW\
lguGT+OX3TfFzQ1dLyslGTiuy9f41AOJiK+PUnTZh84UALtnSnS62bM39+OaWHZc\
xlI7lHDK8mYxgzp9Us6WvLRBH15j3sSNV+GWCLOIk8Y6UIV/RYMCUNdVahiVqOH8\
0vevhdGZQHTLKmNdaiqCOI9R0hZLbFLzkph/kNnFKRlI0MoYn8Tqg2BRIPFYizPf\
eK+y4nmvJhmiMq3ZzUmVApt2deufZIJmNfqmnDyMKOICnYxcH0zJCrKmBmlM9u1i\
PMIXYCIshW2D3E1ACCPOw3ECAwEAAQ==\
-----END PUBLIC KEY-----'
    encrypt.setPublicKey(servPubKeyPem);
    var encryptedText = encrypt.encrypt('Hello my friend!');

    $.ajax({
        type: "POST",
        url: 'test.php',
        data: {'encryptedText' : encryptedText},
        success: function(data) {
            
        }
    });
</script>

</body>
</html>

PHP:

<?php

    $encryptedText = $_POST['encryptedText'];

    $priKeyPem = file_get_contents('../php/priKey.pem');
    
    $priKey = openssl_pkey_get_private($priKeyPem); //PriKey - PrivateKey - (he is work) 
  openssl_private_decrypt($encryptedText, $decryptedText, $priKey);

    # but $decryptedText == null ...

?>

I need to encrypt the text in JS pass the encrypted text in PHP and in PHP decrypt it, but in PHP I get "null"... Please help :/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文