Nucleus 3.31 SHA-encryption edition
2007年12月15日
英語版 Nucleus 3.31 のパスワード認証機能を拡張し、ハッシュ値の計算に MD5 ではなくて、SHA512 もしくは、SHA1 を使うようにしたもの。アルファーバージョンなので、使用は評価のみに限定したい。
PHP のバージョンにより、MD5, SHA1, SHA512 を自動的に使い分ける仕様である。具体的には、PHP4.3.0 未満では MD5 を、4.3.0 以上 5.1.2 未満では SHA1 を、5.1.2 以上では、SHA512 を使うようにしてある。
また、先の記事で述べたように、ランダムな文字列を付加した後にハッシュ値を計算する機能を取り入れたので、たとえハッシュ値が洩れても、現在のところはパスワード解析はほとんど不可能。ここで使うランダム文字列(Salt)は、config.php で、$HASH_SALT として設定する。
以前のバージョンからのアップグレードにも配慮していて、アップグレードの瞬間にログインできなくなるどの不具合は無いはず。今までどおり使用していても、ユーザーはどこがどう変わったかまったく気が付かないはず。MD5 から SHA1/SHA512 への切り替えは、ログインの瞬間に行われる。
ダウンロードはこちらから。
<%media(20071216-nucleus331sha_a1.zip|Nucleus 3.31 SHA)%>
主な変更点は、次のとおり。
MEMBER.php を変更し、
MEMBER::hashMethod()
使用可能なハッシュ関数を調べる。
MEMBER::hash()
ハッシュを計算。
MEMBER::getSalt()
Salt値を返す。
を追加。また、SecureCookieKey 関連のコードを、globalfunctions.php から、MEMBER::MEMBER() に移した。
細かな変更としては、
MEMBER::action_login()
MEMBER::action_logout()
MEMBER::action_cookielogin()
を作成し、globalfunctions.php から関連のコードを移したのと、PLUGINADMIN.php の冒頭部分を変更したこと。
PHP のバージョンにより、MD5, SHA1, SHA512 を自動的に使い分ける仕様である。具体的には、PHP4.3.0 未満では MD5 を、4.3.0 以上 5.1.2 未満では SHA1 を、5.1.2 以上では、SHA512 を使うようにしてある。
また、先の記事で述べたように、ランダムな文字列を付加した後にハッシュ値を計算する機能を取り入れたので、たとえハッシュ値が洩れても、現在のところはパスワード解析はほとんど不可能。ここで使うランダム文字列(Salt)は、config.php で、$HASH_SALT として設定する。
以前のバージョンからのアップグレードにも配慮していて、アップグレードの瞬間にログインできなくなるどの不具合は無いはず。今までどおり使用していても、ユーザーはどこがどう変わったかまったく気が付かないはず。MD5 から SHA1/SHA512 への切り替えは、ログインの瞬間に行われる。
ダウンロードはこちらから。
<%media(20071216-nucleus331sha_a1.zip|Nucleus 3.31 SHA)%>
主な変更点は、次のとおり。
MEMBER.php を変更し、
MEMBER::hashMethod()
使用可能なハッシュ関数を調べる。
MEMBER::hash()
ハッシュを計算。
MEMBER::getSalt()
Salt値を返す。
を追加。また、SecureCookieKey 関連のコードを、globalfunctions.php から、MEMBER::MEMBER() に移した。
細かな変更としては、
MEMBER::action_login()
MEMBER::action_logout()
MEMBER::action_cookielogin()
を作成し、globalfunctions.php から関連のコードを移したのと、PLUGINADMIN.php の冒頭部分を変更したこと。