ホームページ  >  記事  >  バックエンド開発  >  mcrypt_encrypt エラーの解決方法

mcrypt_encrypt エラーの解決方法

WBOY
WBOYオリジナル
2016-06-23 13:38:411732ブラウズ

現在のプロジェクトのパスワードドッキングの問題は、公式環境に配置された後に発生しました
その理由は、mcrypt_encrypt と mcrypt_decrypt が PHP 5.6 以降で変更されたためです
新しいバージョンでこれら 2 つのメソッドを使用する方法を知っている人はいますか。 PHPの?

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


ディスカッション (解決策) に返信

PHP5.6 以降のバージョンでこの暗号化方法を使用した人はいますか?出てきて新参者を助けてください

コード (php 5.4.31) に問題があります
このアルゴリズムにはキーのサイズが大きすぎますというメッセージが表示されます: キーのサイズが大きすぎます
そうでない場合MD5 を使用しないと正常になります

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

申し訳ありませんが、キーの長さがそうではないという投稿を以前に見ました。十分なので、MD5 を付けました

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