ホームページ  >  記事  >  バックエンド開発  >  mcrypt_encrypt 例外を解決する方法

mcrypt_encrypt 例外を解決する方法

WBOY
WBOYオリジナル
2016-06-13 12:16:082011ブラウズ

mcrypt_encrypt エラーの解決方法
現在のプロジェクトを公式環境に置いた後にパスワードのドッキングの問題が発生しました
原因は、mcrypt_encrypt と mcrypt_decrypt が PHP 5.6 以降で変更されたためです
誰か。新しいバージョンで問題を解決する方法はわかりますか? PHP ではこれら 2 つの方法をどのように使用すればよいですか?

<br />protected function encrypt($string) {<br />		//加密用的密钥文件 <br />		$key = md5("xxxxxxxx");<br />		//加密方法 <br />		$cipher_alg = MCRYPT_TRIPLEDES;<br />		//初始化向量来增加安全性 <br />		$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND); <br />		//开始加密 <br />		$encrypted_string = mcrypt_encrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv);<br />		var_dump($encrypted_string);<br />		return base64_encode($encrypted_string);//转化成16进制<br />    }<br />protected function decrypt($string) {<br />		$string = base64_decode($string);<br />		//加密用的密钥文件 <br />		$key = md5("xxxxxxxx");<br />		//加密方法 <br />		$cipher_alg = MCRYPT_TRIPLEDES;<br />		//初始化向量来增加安全性 <br />		$iv = mcrypt_create_iv(mcrypt_get_iv_size($cipher_alg,MCRYPT_MODE_ECB), MCRYPT_RAND); <br />		//开始解密 <br />		$decrypted_string = mcrypt_decrypt($cipher_alg, $key, $string, MCRYPT_MODE_ECB, $iv); <br />		return $decrypted_string;<br />    }<br />

-----ソリューションのアイデア----------------------
あなたのアイデアこれはコードに問題があります (php 5.4.31)
このアルゴリズムには「キーのサイズが大きすぎます」というメッセージが表示されます: キーのサイズが大きすぎます
MD5 なしでは正常である可能性があります

ただし、php 5.6.3 では
MD5 が使用されていない場合のエラー メッセージは次のとおりです。このアルゴリズムではサイズ 8 のキーはサポートされていません。サイズ 24 のキーのみがサポートされています。
MD5 が使用されている場合のエラー メッセージは次のとおりです。 : サイズ 32 のキーは、このアルゴリズム アルゴリズムではサポートされていません。サイズ 24 のキーのみがサポートされています
したがって、キーの長さを 24 に調整するだけで済みます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。