最近做一個項目,其中接口傳遞參數對方要求AES-ECB加密,對方用的java開發,我用的是php,加密其實挺簡單但是中間有個小坑折騰了很久,記錄一下用于下回備查。
以下是PHP openssl_encrypt 加密語句
$new_data = openssl_encrypt($data, 'AES-128-ECB', $key,1);
其中$data是需要加密的數據字符串;
AES-128-ECB是加密模式;
$key為加密密鑰;
1這里是編碼方式,0是base64/1是hex;
正常情況下編碼方式0即base64加密正常無需過多解釋,java一般默認為hex編碼方式,說這里坑來了如果直接填1加密過后的數據為亂碼需要進行以下處理才行
$new_data = strtolower(bin2hex($new_data));
另外要注意的是openssl_encrypt加密默認是pkcs7填充方式。
如無特別說明,文章均為本站原創。轉載請注明出處:http://www.sysbbie.com/phper/27.html
評論列表