首頁 >後端開發 >PHP問題 >php怎麼實作aes加密

php怎麼實作aes加密

WBOY
WBOY原創
2022-03-15 10:24:4334007瀏覽

在PHP中,可以利用「openssl_encrypt()」函數實作aes加密,只需要將參數中加密方法設為「AES-128-ECB」即可,語法為「openssl_decrypt(加密明文,' AES-128-ECB',加密金鑰,資料格式)」。

php怎麼實作aes加密

本文操作環境:Windows10系統、PHP7.1版、Dell G3電腦。

php怎麼實作aes加密

在php中我們使用openssl_encrypt來實作加密和使用openssl_decrypt實作解密

一:openssl_encrypt方法詳解:

openssl_encrypt($data, $method, $key, $options = 0, $iv = "", &$tag = NULL, $aad = "", $tag_length = 16)

參數:

1.$data:加密明文

2.$method:加密方法: 可以透過openssl_get_cipher_methods()取得哪些加密方式

#3.$passwd:加密金鑰[密碼]

4.$options:資料格式選項(可選)【選項有:】:0,OPENSSL_RAW_DATA=1,OPENSSL_ZERO_PADDING=2,OPENSSL_NO_PADDING=3

5.$iv:密初始化向量(可選),需要注意:如果method為DES−ECB,則iv無需填寫

6.$tag:使用 AEAD 密碼模式(GCM 或CCM)時傳引用的驗證標籤(可選)

7.$aad:附加的驗證資料。 (可選)

8.$tag_length:驗證 tag 的長度。 GCM 模式時,它的範圍是 4 到 16(可選)

二:openssl_decrypt方法詳解

openssl_decrypt($data, $method, $password, $options = 1, $iv = "", $tag = "",  $aad = "")

#參數:

#1.$ data:要解密的加密訊息。

2.$method:解密方法:可以透過openssl_get_cipher_methods()取得哪些解密方式

3.$passwd:解密金鑰[密碼]

4.$ options:資料格式選項(可選)【選項有:】0,OPENSSL_RAW_DATA=1,OPENSSL_ZERO_PADDING=2,OPENSSL_NO_PADDING=3

5.$iv:密初始化向量(可選),需要注意:如果method為DES−ECB,則iv無需填寫

6.$tag:AEAD密碼模式下的驗證標籤(可選)

7.$aad:附加的驗證資料。 (可選)

三:實作AES的加密解密

1:AES加密

// 要加密的字符串
$data = 'test';
// 密钥
$key = '123456';
// 加密数据 'AES-128-ECB' 可以通过openssl_get_cipher_methods()获取
$encrypt = openssl_encrypt($data, 'AES-128-ECB', $key, 0);
echo (($encrypt));

2:AES解密

//解密字符串
$encrypt = '***';
//密钥
$key = '123456';
// 解密数据
$decrypt = openssl_decrypt($encrypt, 'AES-128-ECB', $key, 0);
echo $decrypt;

根據如上就可以實現AES的加密解密功能

推薦學習:《PHP影片教學

以上是php怎麼實作aes加密的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn