私はCodeIgniterに次のクラスを持っています
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class ZoEncryption {
public $_CI;
public function __construct() {
$this->_CI = & get_instance();
$this->_CI->encrypt->set_cipher(MCRYPT_BLOWFISH);
$this->_CI->encrypt->set_mode(MCRYPT_MODE_CBC);
}
function encode($str, $key) {
return $this->_CI->encrypt->encode($str, $key);
}
function decode($str, $key) {
return $this->_CI->encrypt->decode($str, $key);
}
}
?>
データベース内のユーザー コンテンツを暗号化および復号化するために、ci アプリケーションでこのライブラリを使用しています。暗号化/復号化に特定のロジックを持たせたいので、暗号とモードを指定しています。この変更のコーディングが将来的に驚かされることはありません。
また、PHP 5.5 の新しいパスワード ハッシュ スキーマを早期に実装するために、 password_compatライブラリを使用しています。
このライブラリを使用すると、PHP の将来に基づいてユーザー パスワード ハッシュ ロジックを構築できます。
コンストラクターで暗号とモードを設定せず、関連する行をベースコントローラーコンストラクターに配置しないと、パスワードハッシュが機能しません。
具体的には、MY_Controller に次の 2 行を追加すると、パスワードの検証が機能しません。
次の行は CI 全体に影響しますか?
$CI->encrypt->set_cipher(MCRYPT_BLOWFISH);
$CI->encrypt->set_mode(MCRYPT_MODE_CBC);