PHP7 openssl函数替换mcrypt函数加密解密
以下是两者的区别及openssl替换mcrypt的方法:
替代
$key = '-2i61^'; $iv = '&11r2(*3'; $data = "123456789"; //要加密的数据 if(PHP_VERSION<5.6){ $a= base64_encode(mcrypt_encrypt(MCRYPT_3DES,$key,$data,MCRYPT_MODE_CBC,$iv)); echo 'mcrypt_encrypt:'.$a.'<br>'; //rtrim 移除字符串右侧的空白字符 $decrypt = rtrim(mcrypt_decrypt(MCRYPT_3DES,$key,base64_decode($a),MCRYPT_MODE_CBC,$iv),'\0'); echo 'mcrypt_decrypt:'.$decrypt.'<br>'; } //使用mcrypt函数来对比 $len = strlen($data); if($len%8){ $data = str_pad($data,$len+8-$len%8,"\0"); }//使用空字符填充字符串的右侧,使字符串位数变为8的倍数 $b = base64_encode(openssl_encrypt($data,'DES-EDE3-CBC',$key,OPENSSL_RAW_DATA|OPENSSL_NO_PADDING,$iv)); echo "openssl_encrypt:".$b. '<br>'; $decrypt = openssl_decrypt(base64_decode($b),'DES-EDE3-CBC',$key,OPENSSL_RAW_DATA|OPENSSL_NO_PADDING,$iv); echo 'openssl_decrypt:'.$decrypt.'<br>';
运行结果
mcrypt_encrypt:O4/3PssvAkrYtIlhbQEr+g== mcrypt_decrypt:123456789 openssl_encrypt:O4/3PssvAkrYtIlhbQEr+g== openssl_decrypt:123456789
然后来个对比,看看这两个函数的速度:
$key = '-2i61^'; $iv = '&11r2(*3'; $data = "123456789"; if(PHP_VERSION<5.6){ $start = microtime(true); for($i=0;$i<10000;$i++){ $a= base64_encode(mcrypt_encrypt(MCRYPT_3DES,$key,$data,MCRYPT_MODE_CBC,$iv)); } echo 'mcrypt_time:'; echo microtime(true)-$start.'<br>'; echo 'mcrypt_encrypt'.$a.'<br>'; $decrypt = rtrim(mcrypt_decrypt(MCRYPT_3DES,$key,base64_decode($a),MCRYPT_MODE_CBC,$iv),'\0'); echo 'mcrypt_decrypt'.$decrypt.'<br>'; } $start = microtime(true); for($i=0;$i<10000;$i++){ $len = strlen($data); if($len%8){ $data = str_pad($data,$len+8-$len%8,"\0"); } $b = base64_encode(openssl_encrypt($data,'DES-EDE3-CBC',$key,OPENSSL_RAW_DATA|OPENSSL_NO_PADDING,$iv)); } echo "openssl_time:"; echo microtime(true)-$start . '<br>'; echo "openssl_encrypt:".$b. '<br>'; $decrypt = openssl_decrypt(base64_decode($b),'DES-EDE3-CBC',$key,OPENSSL_RAW_DATA|OPENSSL_NO_PADDING,$iv); echo 'openssl_decrypt'.$decrypt.'<br>';
结果
mcrypt_time:1.8425710201263 mcrypt_encryptO4/3PssvAkrYtIlhbQEr+g== mcrypt_decrypt123456789 openssl_time:0.023201942443848 openssl_encrypt:O4/3PssvAkrYtIlhbQEr+g== openssl_decrypt123456789
本文来自php7教程栏目,欢迎学习。
以上がPHP7 の openssl 関数は、mcrypt 関数の暗号化および復号化メソッドを置き換えますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事
Inzoi:学校と大学への応募方法
3週間前ByDDD
Roblox:Dead Rails - ニコラテスラを召喚して倒す方法
4週間前By尊渡假赌尊渡假赌尊渡假赌

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 中国語版
中国語版、とても使いやすい

WebStorm Mac版
便利なJavaScript開発ツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック
Gmailメールのログイン入り口はどこですか?
7807
15


Java チュートリアル
1646
14


CakePHP チュートリアル
1402
52


Laravel チュートリアル
1300
25


PHP チュートリアル
1236
29

