使用 JustEncrypt 庫簡化 PHP 中的數據加密

可以通過以下地址學習 composer學習地址

在項目開發中,數據加密是一個關鍵環節,尤其是在處理敏感信息時。為了確保數據在傳輸過程中的安全性,我需要一個能夠在不同 php 版本上運行且性能優異的加密庫。經過多次嘗試,我最終選擇了 JustEncrypt 庫。

JustEncrypt 是一個輕量級的 PHP 加密庫,支持 PHP 5.6 至 7.1 版本。特別推薦使用 PHP 7.1,因為它支持 OpenSSL 擴展,從而提供更快的加密算法。如果使用較低版本的 PHP,庫會回退到基于原生 PHP 的實現,雖然速度較慢,但仍然可以保證功能的完整性。

使用 JustEncrypt

JustEncrypt 庫的主要功能包括密鑰派生和數據加密。以下是如何使用該庫進行加密的簡單示例:

密鑰派生

首先,我們需要生成一個鹽值,并從密碼中派生出密鑰:

立即學習PHP免費學習筆記(深入)”;

use JustEncryptKeyDerivation;  $salt = KeyDerivation::generateSalt(); $iterations = 35000; // 默認迭代次數 $key = KeyDerivation::deriveKey($password, $salt, $iterations);

數據加密

使用派生的密鑰進行數據加密:

use JustEncryptEncryption;  $data = '這是需要加密的數據'; $encryptedBlob = Encryption::encrypt($data, $password);  // 獲取加密后的二進制數據 $binaryData = $encryptedBlob->getBinary();  // 獲取助記詞(用于人工記錄) $mnemonic = $encryptedBlob->getMnemonic();

加密后的數據包括鹽值、初始向量、密文和標簽,這些參數的序列化形式使得在任何機器上只需知道密碼即可解密。

選擇迭代次數

默認的迭代次數設置為 35000,這對于使用密碼進行加密來說足夠安全。如果使用 CSPRNG 生成的隨機字節字符串作為密碼,可以將迭代次數設為 1,因為這種情況下不需要進行密碼拉伸。

助記詞

為了使加密結果更易于人工記錄,JustEncrypt 支持將加密數據轉換為助記詞。這使用了 Bitcoin BIP39 的編碼方式,但忽略了其原始的弱密碼保護功能,并確保數據正確填充。

$mnemonic = $encryptedBlob->getMnemonic();

使用 composer 安裝 JustEncrypt

安裝 JustEncrypt 庫非常簡單,只需運行以下命令:

composer require koltsov/justencrypt

總結

JustEncrypt 庫通過提供一個靈活且高效的加密解決方案,極大地簡化了我的 PHP 項目中的數據加密過程。它不僅在不同 PHP 版本上保持一致性,還提供了從密鑰派生到數據加密的完整功能。通過使用 JustEncrypt,我不僅解決了加密算法的一致性問題,還提升了項目的安全性和性能。如果你正在尋找一個能夠在 PHP 中簡化加密過程的庫,JustEncrypt 無疑是一個值得考慮的選擇。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享