亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

PHP數據加密方式是什么

發布時間:2022-09-28 14:19:35 來源:億速云 閱讀:137 作者:iii 欄目:開發技術

本篇內容介紹了“PHP數據加密方式是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

前言

首先我們來了解一下為什么要加密?

在網絡通信的過程中攻擊者可以偽造請求和返回,從而達到不可告人的目的。如下圖所示:

PHP數據加密方式是什么

數據加密之后可以防止他人監聽竊取信息以及通訊內容被篡改。

了解了加密的作用,我再來說說加密的方式:

對稱加密DES

DES是1977年美國聯邦信息處理標準中采用的一種對稱密碼。是一種將64比特的明文加密成64比特的密文的對稱算法

DES已經被暴力破解了,1999年RSA公司舉辦的破譯DES比賽,耗時僅僅22小時45分鐘破譯了DES。所以不建議大家使用這種算法進行加密處理

對稱加密AES

AES是取代DES而成為新標準的一種對稱密碼算法。目前為止還未被破譯。

接下來我們用PHP來實踐一下對稱加密吧。

在使用PHP的AES加密需要使用openssl相關函數,該系列函數需要安裝openssl擴展。

//獲取可用的加密算法
$a = openssl_get_cipher_methods();
print_r($a)
//AES加密解密
$data = 'wo shi aes jiami shuju';//待加密的數據
$key = uniqid();//加密的密鑰
$method = 'AES-128-CBC';//加密的方式
$iv = '1234567812345678';//初始化向量,必須是16位字符
$a = openssl_encrypt($data,$method,$key,OPENSSL_RAW_DATA,$iv);
//打印加密結果
print_r($a);
//解密
$d = openssl_decrypt($a,$method,$key,OPENSSL_RAW_DATA,$iv);
//解密后的數據
print_r($d);

非對稱加密RSA

AES加密算法目前雖然沒有被破解,但是也有一個問題,加密所使用的密鑰該怎么去配送呢?如果直接寫死在前端就很容易被其他人獲取到(一次反編譯就可以獲取)。

此時就產生了RSA加密算法,不過RSA密碼算法也有缺點,運算次數多,不適合加密長文本。

明文內容最長128字節

我們直接來看看PHP實現非對稱加密吧

//使用公鑰加密,私鑰解密
$public_key = "-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA14VJBWSyVOI4Q4aV+Cvl
GX4Vb4wczPw0qQbGYAYzfuA7+RpO/X5DG7dFjdBMmb9cHvdWY8+uvKDVuHjbvCpm
3nSTgMbCLm/zDDTH8MUySSaxvm0tbdWm+L1Rinw5LZ+B1J9tHEXMwJZ2g5ZS4OZ0
4xlXx/4GWd9QBuV036er47J/cZ19WPgBDqQ4Mmm2X2na46NCeRenRBXLsaQhxvEe
5pX3WtguQtr+QrcekAmBoI1Xc0xhKDyXZ34rqZNvVCUNn11VzDcffanxlmTFFKDp
QCZLVf8gtSdcxxQQrOfStgLoyYbN1e2Spb/szfQHtbSZ1qHg1frhCvjgOmZ6gDi+
OQIDAQAB
-----END PUBLIC KEY-----";//公鑰
$private_key = "-----BEGIN PRIVATE KEY-----
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQDXhUkFZLJU4jhD
hpX4K+UZfhVvjBzM/DSpBsZgBjN+4Dv5Gk79fkMbt0WN0EyZv1we91Zjz668oNW4
eNu8KmbedJOAxsIub/MMNMfwxTJJJrG+bS1t1ab4vVGKfDktn4HUn20cRczAlnaD
llLg5nTjGVfH/gZZ31AG5XTfp6vjsn9xnX1Y+AEOpDgyabZfadrjo0J5F6dEFcux
pCHG8R7mlfda2C5C2v5Ctx6QCYGgjVdzTGEoPJdnfiupk29UJQ2fXVXMNx99qfGW
ZMUUoOlAJktV/yC1J1zHFBCs59K2AujJhs3V7ZKlv+zN9Ae1tJnWoeDV+uEK+OA6
ZnqAOL45AgMBAAECggEAEdjMsjCjf9n31MepVZK09wZ02fbdT7A24CRaewsoaoJB
FSCzl9RD1GC51sOABF9PTpUmxz8kdiRPbmY7s/pC6Hr41/odjGDi3IjmYa7CukIF
CALcdzLxD7oFrZUZ2whRZP0KuQOir/QFvmHNXShYV5H6reoANqMCan/HzNmCp2ky
pdtWd+YOFnvwP/m6Xw/mKWN2cFEEdME32Y9fnUq6gCpmgEQLZkEz0XQ53R9Yj6+O
TpYhLzCgox5+HRL+PmE8G3XdVNOhbesmsTX4cS4s5/bWhw/iuZtlSGvNz867p0Ab
jNiouWpoiLM9uHwGURndg+fslLKrBLU0fQeeXYplsQKBgQD3iEDX/Nzo19RZWz6T
gf0r6S7tMtMWQr1InM8fuPxNXsT5QIuddNVp47UMs91F8K5bzGim7+0hM9SnBUsp
/wKw9DRQuELziSdFGyfyo4lDiVvjqvMInph2yLfXaLdz9fxlT5+a8fUFJQqH65w2
SL+ice07mWt7ak/f1bfGKeAuVQKBgQDe5LFNtDKWLxMaO8lVTR0wWziTLImu+E3e
svDIqZszyzqsLnZ4Qu6CXigrXQka8s1LRVF1kf4NQc65uutsFwitfOLitFa/h3wk
5K6Rqwl95QfkuYJpDvU4/IQ21O7HqRBt050QvBrNOfY8MCQUi3fisiP+mOkJS41Z
iVRmQsfsVQKBgCjMinOPOBIg0N1RjsTdXg9IxfVOtUAsC+rV/cWqxdsyzaCPpPN0
+GAVqhfH5abLftGepXkufpVEZ76HvtXTNGxaM+1CEbb2WkSnrzPtBIjfMQgbeydm
jJaNWM/mcKZqWwmP0CzHyKzqaAvzJ7JC12M9B+8U4IRdB4FLRpkg+dRpAoGAJkZz
Q/qrrSqMRzb5DdLeLk2b23oMcqVlCdcEjhDB/BTsEGEyKtijiHOOxlOFmsETC9ft
cxkM3U3tp+s3Pip+bPxDIdcCBoXExlkWuSD70kigIGDSyiOtbInAUoIiNtsLXTC3
igYjPBa1+AP0Tirc/WrFz5SGf/gfX767ZYwWNLkCgYBuHZrIWT0Feg5dJAkF7NMH
1Fes0Gn5sAQVvd9HVG4FAZxqJQa37M3GKD1m4ifBGtaDMgtWyVcMTdsr5hjpJB0G
sEYlg3TDyd096Axr+I7KHDlIzboJjDWDwzwtqkTzgBRlxsClhqW/y/1y1o/QI9Rj
CA7iK/XSPTdstVk5IPL/Aw==
-----END PRIVATE KEY-----";//私鑰
$text ='我是待加密的內容';
//公鑰加密,參數二$data為加密后的內容
$res = openssl_public_encrypt($text,$encrypt,$public_key);
if($res==false) echo '加密失敗';
//私鑰解密,參數一:待解密的數據  
//參數二:解密后的明文內容
$res = openssl_private_decrypt($encrypt,$decrypt,$private_key);
if($res==false) echo '解密失敗';
echo '解密后的明文數據:'.$decrypt

上面的代碼就是PHP實現公鑰加密,私鑰解密的過程,我們再來看看PHP私鑰加密,公鑰解密吧

//使用公鑰加密,私鑰解密
$public_key = "公鑰"; 
$private_key = "私鑰"; 
$text = "我是待加密的內容";
//公鑰加密,參數二$data為加密后的內容
//參數三:私鑰
$res = openssl_private_encrypt($text,$encrypt,$private_key);
if($res==false) echo '加密失敗';
//私鑰解密,參數一:待解密的數據  
//參數二:解密后的明文內容
//參數三:公鑰
$res = openssl_public_decrypt($encrypt,$decrypt,$public_key );
if($res==false) echo '解密失敗';
echo '解密后的明文數據:'.$decrypt

注意了,前端使用公鑰或者私鑰進行加密時,一般都會將加密內容轉base64h后再傳到服務器進行解密。服務器在接收到數據后應該進行base64解析后再進行公鑰/私鑰進行解密。后端返回給前端時,也應該將加密后的內容轉base64格式,方便前端解析。

當然也有一些開發人員會使用urlencode進行url編碼再傳輸給前后端,大家可以根據實際需要進行轉碼。

“PHP數據加密方式是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

巫山县| 信丰县| 郓城县| 梁山县| 云南省| 荥经县| 托克逊县| 吉木乃县| 晴隆县| 南澳县| 沾化县| 本溪市| 鄯善县| 林周县| 吉木乃县| 沈阳市| 且末县| 安远县| 疏勒县| 孟州市| 佛坪县| 景泰县| 高安市| 越西县| 乌拉特前旗| 阿拉善盟| 佛山市| 正安县| 潮州市| 望谟县| 睢宁县| 巴林右旗| 临沂市| 浦城县| 响水县| 平乡县| 闻喜县| 永宁县| 宝兴县| 武义县| 西乡县|