您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“php對稱加解密的問題怎么解決”,內容詳細,步驟清晰,細節處理妥當,希望這篇“php對稱加解密的問題怎么解決”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
1、mcrypt 擴展 還是 openssl 擴展?
php7 棄用了 mcrypt 擴展并建議使用openssl來進行加解密
2、DES,3DES,AES?
DES 是一種較舊的對稱加密算法。它的安全性已經不能滿足當前的需求,而且它的性能也比 AES 差。
3DES本質也是DES,只是在DES的基礎上加密了3次,同上基本嗝屁,技術選型的時候,盡量避免這兩種機密算法
AES 是一種高級加密標準(Advanced Encryption Standard),它是目前被廣泛使用的對稱加密算法。AES 的安全性非常高,而且它還具有較高的性能。
3、AES-128-X ,AES-196-X 還是 AES-256-X?
128,196,256就是密鑰長度的意思
128就是128bit 16個字節,比如這個密鑰:1234123412341234
如果密鑰超出16字節后面多余的部分會被直接無視掉
4、五種加密模式
ECB Electric CodeBook 電碼本模式
CBC Cipher Block Chaining 密碼分組鏈接模式
這種模式需要一個向量值iv,比ECB更加安全
示例代碼:
$my_method = 'aes-128-cbc'; //算法
$key = "1234567812345678"; //128bit秘鑰
$data = "asxsaxasdlkasjdiqi";
//輸入算法獲取向量長度
$iv_length = openssl_cipher_iv_length( $my_method );
//根據長度獲取向量 函數會給$cstrong賦bool值,判斷是否使用了強加密算法,一般為true
$iv = openssl_random_pseudo_bytes( $iv_length, $cstrong );
//加密
$enc_data = openssl_encrypt($data, $my_method, $key, OPENSSL_RAW_DATA, $iv);
//解密
$dec_data = openssl_decrypt($enc_data, $my_method, $key, OPENSSL_RAW_DATA, $iv);
CFB Cipher FeedBack 密碼反饋模式
OFB Output FeedBack 輸出反饋模式
CTR Counter Mode 計算器模式
同一種算法下的不同分組加密迭代模式,比如AES-128-ECB,指的是使用AES算法,秘鑰是128bit長度,迭代方式是ECB,用AES-128-ECB算法的加密的密文只能用AES-128-ECB來解密
5、怎么查看可用的加密方法?
print_r(openssl_get_cipher_methods());
//
Array
(
[0] => aes-128-cbc
...
[19] => aes-192-cbc
...
[35] => aes-256-cbc
...
[54] => aria-128-cbc
...
[80] => aria-256-ofb
[81] => camellia-128-cbc
...
[102] => camellia-256-ctr
...
[105] => chacha20
...
[107] => des-ede-cbc
...
[116] => des-ede3-ofb
[117] => des3-wrap
[118] => null
[119] => sm4-cbc
)
讀到這里,這篇“php對稱加解密的問題怎么解決”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。