php如何openssl encrypt加密解密

2021-08-29 23:25:14 字數 2091 閱讀 6390

des 是對稱性加密裡面常見一種,全稱為 data encryption standard,即資料加密標準,是一種使用金鑰加密的塊演算法。金鑰長度是64位(bit),超過位數金鑰被忽略。所謂對稱性加密即加密和解密金鑰相同,對稱性加密一般會按照固定長度,把待加密字串分成塊,不足一整塊或者剛好最後有特殊填充字元。

openssl_encrypt($data, $method, $password, $options, $iv)
引數說明:

$data 加密明文

$method 加密方法

$passwd 加密金鑰[密碼]

$options 資料格式選項(可選)【選項有:】

$iv 密初始化向量(可選)

openssl_decrypt($data, $method, $password, $options, $iv)
引數說明:

$data 要解密的資料

其他引數同加密方法

引數:

$data = '1234567887654321';//加密明文

$method = 'des-ecb';//加密方法

$passwd = '12344321';//加密金鑰

$options = 0;//資料格式選項(可選)

$iv = '';//加密初始化向量(可選)

(1) 預設填充方式:

(2) openssl_raw_data方式【會用pkcs#7進行補位】

$result = openssl_encrypt($data, $method, $passwd, openssl_raw_data);

var_dump($result);

結果:

string(24) "�v���9z[���nr�j �6��"
我們可以看到結果是亂碼的,這時我們需要base64一下

$result = openssl_encrypt($data, $method, $passwd, openssl_raw_data);

var_dump(base64_encode($result));

這時結果是

string(32) "kqyodswcm9i5elv2wdjucplqagqdnqxg"
result = openssl_encrypt($data, $method, $passwd, openssl_raw_data);

var_dump(openssl_decrypt($result, $method, $passwd,openssl_raw_data));

結果:

string(16) "1234567887654321"
我們可以看到:預設填充方式與openssl_raw_data,這兩種方式加密結果是一樣的

(3) openssl_zero_padding方式

看字面意思,是用0填充,但是測試並不起作用

$result = openssl_encrypt($data, $method, $passwd, openssl_zero_padding);

var_dump($result);

結果:

string(24) "kqyodswcm9i5elv2wdjucg=="
$result = openssl_encrypt($data, $method, $passwd, openssl_zero_padding);

var_dump(openssl_decrypt($result, $method, $passwd,openssl_zero_padding));

結果:

string(16) "1234567887654321"
(4) openssl_no_padding【不填充,需要手動填充】

** 結尾要去除填充字元』\0』和』\a』。

『\a』是為了相容用openssl_raw_data加密的結果。 **

php如何獲得編碼 php如何轉編碼

php轉編碼的實現方法 1 使用iconv函式轉換目標編碼,語法如 iconv gbk utf 8 instr 2 通過mb convert encoding函式轉換編碼。在使用php處理字串時,我們經常會碰到字元編碼轉換的問題,你碰到過iconv轉換失敗嗎?發現問題時,網上搜了搜,才發現iconv...

php如何安裝補丁,php補丁如何安裝

安裝php補丁的方法 首先轉到php5.4源 的根目錄 然後執行 patch p0 path to patch.patch 最後編譯這個補丁版本的php即可。具體問題 我需要在php 中安裝此修補程式 我的php版本 5.4.10 安裝方法 必須先擁有原始檔和修補程式檔案,然後才能對其進行修補。很簡...

如何安裝php?

1.解壓apache檔案 2.進行註冊,寫位址,郵箱 3.下一步選擇typical 4.下一步隨意選個安裝路徑 5.解壓php檔案 6.把php.ini development檔案改為php.ini 7.在apache的模組中,conf檔案裡127行 loadmodule php5 module d...