① 在PHP里實現AES的加密解密功能(包括mcrypt版本和openssl版本)
在PHP里實現AES的加密解密功能,可以使用mcrypt擴展和openssl擴展,具體實現方式如下:
使用mcrypt擴展
- 安裝與配置:確保mcrypt擴展已安裝並啟用。
- 加密方法:默認使用AES128CBC方法。
- 加密步驟:
- 准備數據:原數據、AES私鑰、初始化向量。
- 加密:使用mcrypt_encrypt函數進行加密。
- 存儲:加密結果通常需要與IV一起存儲,以便解密時使用。
- 解密步驟:
- 提取數據:從存儲中提取加密數據和IV。
- 解密:使用mcrypt_decrypt函數進行解密。
- 注意事項:mcrypt擴展的代碼相對復雜,且需要手動處理補位邏輯。
使用openssl擴展
- 安裝與配置:openssl擴展通常默認安裝,確保已啟用。
- 加密方法:推薦使用AES256CBC方法,自動處理補位邏輯。
- 加密步驟:
- 准備數據:原數據、AES私鑰、初始化向量。
- 加密:使用openssl_encrypt函數進行加密。
- 存儲:加密結果和IV通常需要一起存儲。
- 解密步驟:
- 提取數據:從存儲中提取加密數據和IV。
- 解密:使用openssl_decrypt函數進行解密。
- 優點:openssl版本更高效,代碼更簡潔,且自動處理補位邏輯。
總結: mcrypt擴展:適用於PHP7.1以下版本,代碼復雜,需手動處理補位。 openssl擴展:適用於PHP7及以上版本,高效簡潔,自動處理補位,推薦使用。