首頁 >後端開發 >php教程 >如何在 PHP 和 JavaScript 之間安全地加密和解密資料?

如何在 PHP 和 JavaScript 之間安全地加密和解密資料?

DDD
DDD原創
2024-11-24 05:19:10511瀏覽

How to Securely Encrypt and Decrypt Data Between PHP and JavaScript?

在PHP 和JavaScript 之間加密和解密資料

處理敏感資料時,實施加密機制以維護其機密性至關重要。在本文中,我們將探討如何在 PHP 中加密資料並使用 JavaScript 中的 CryptoJS 函式庫進行解密。

PHP 中的加密

PHP 提供了各種加密函數,包括 mcrypt_encrypt() 和 openssl_encrypt()。在我們的範例中,我們將使用 OpenSSL 的 openssl_encrypt() 函數來利用其對各種加密演算法的支援。

PHP 加密範例:

<?php
$text = "Data to encrypt";
$key = "Encryption key";

$msgEncrypted = openssl_encrypt($text, 'aes-256-cbc', $key, true, mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB), MCRYPT_RAND));
$msgBase64 = trim(base64_encode($msgEncrypted));

echo "<h2>PHP</h2>";
echo "<p>Encrypted:</p>";
echo $msgEncrypted;
echo "<p>Base64:</p>";
echo $msgBase64;
?>

JavaScript中的解密

將以下內容替換為提供的範例::

<textarea class="encrypted-data" cols="80" rows="5">&amp;#x3C;?php echo $msgBase64 ?&amp;#x3E;</textarea>

CryptoJS 提供了一個方便的AES.decrypt() 函數來解密使用AES 演算法加密的資料。此函數需要密碼和加密密文。

JavaScript 解密範例:

<script> 
    var encryptedData = document.querySelector(".encrypted-data").value;
    var key = 'Encryption key';
    const decrypted = CryptoJS.AES.decrypt(encryptedData, key);
    console.log(decrypted.toString(CryptoJS.enc.Utf8));
</script>

結論

透過實作透過上述技術,您可以透過在PHP 中加密資料並在JavaScript 中安全解密來有效地保護您的資料。請記住,保護資料需要考慮其他因素,例如金鑰管理、安全儲存和威脅建模。

以上是如何在 PHP 和 JavaScript 之間安全地加密和解密資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn