ホームページ >バックエンド開発 >PHPチュートリアル >mcrypt_encrypt エラーの解決方法
現在のプロジェクトのパスワードドッキングの問題は、公式環境に配置された後に発生しました
その理由は、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 を付けました