其實不應該算aes加密的坑,而是加密後使用的坑
正常的加密應該是
$data = openssl_encrypt($input, 'aes-256-cbc', $this->key, openssl_raw_data, $this->hex_iv);返回給使用者使用還要base64編碼,
base64_encode($data)就是這個編碼可能會造成解密錯誤!是的,是解密會錯誤!加密沒事
原因就是因為:base64編碼的過程中會產生+,但是+在瀏覽器url中會替換成空格,所以最好的做法是
編碼後替換+為其他字元
解密之前將+替換回來
如下
/**加密**/public function encrypt($input)
/**解密***/
public function decrypt($input)
AES加密中遇到的坑
專案背景 終端資料需要上傳到後台,為了安全,使用了aes加密 問題1 資料首先經過了protobuf進行格式,資料傳輸到後台無法解析 解決 二進位制資料直接進行aes加密後大多無法正常解析,於是在加密前有用base64轉化了一下。問題2 aes加密需要和後台同步的地方,否則加密後的密文不同 需要協商...
AES 的加密操作
author vivid param ssrc 加密data param skey 加密金鑰 param ivstr 加密向量 description 加密操作 public static string encrypt string ssrc,string skey,string ivstr thr...
Tcp的AES加密和AES 解密
下面的引數str就是tcp需要傳輸的內容 金鑰就是加密和解密需要提供一組相同的字元 加密模式 填充方式 將目標字串進行aes加密 iv和key均為secretkey 被加密字串 秘鑰 加密模式 填充方式 public static string toencryptaes this string st...