2009-08-11 6 views
0

私はどのようにjoomla塩強化されたパスワードの暗号化のための塩として使用されている文字列の価値を知ることができますか?Joomla塩強化パスワード

答えて

9

Joomlaは各パスワードにランダムな塩を生成します。あなたは塩を区切り文字としてコロンとパスワードの後に​​格納されていることを見ることができますビットから

http://forum.joomla.org/viewtopic.php?f=476&t=308499

:ここでは、パスワードを生成するためにJoomlaの方法で作業する方法についての貴重な情報を見つけることができます。

$salt = JUserHelper::genRandomPassword(32); 
$crypt = JUserHelper::getCryptedPassword("blabla", $salt); 
$password = $crypt . ':' . $salt; 

[EDIT] 私はJoomlaの妥当性を検証するためにZend_AuthとAuthorisiationバリデータを書き込むために必要(1.0)をインストールし、私はそれについて、ここで情報を更新しようと思いました。私のコードのスナップ。 usersテーブルのパスワードフィールドで

$dbAdapter = Zend_Registry::get('jdb'); 
$this->_authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter); 
$this->_authAdapter->setTableName('jos_users') 
->setIdentityColumn('username') 
->setCredentialColumn('password'); 

//Joomla 1.0 uses hashes in the form md5(passwort + salt) + salt 
$users = new Users(); 
$hash = $users->getHash($value); 
$salt = substr($hash, strpos($hash, ':') + 1); 
$password = md5($context['password'] . $salt) . ':' . $salt; 

[/ EDIT]

+0

は、その塩を避け、パスワードとしてmd5のみを使用する方法はありますか?/ – Andromeda

+0

いいえ。ソフトウェアのすべての関連部分を書き換える場合を除き... – markus

+0

これは正しくありません。コロン(データベース内のパスワード内)が省略されている場合、Joomla! md5でハッシュされたパスワードを引き受けます(「管理パスワードの回復方法」、http://forum.joomla.org/viewtopic.php?t=10985を参照)。そうすれば(本当に)すべてのパスワードmd5のみでは、「パスワード変更」 - 手順を書き換えたり、変更したりする必要があります。 Joomla!彼がデータベースからしか読めない限り、それらを塩にしません。 – giraff

0

特にjoomlaに精通していないが、ほとんどの塩漬けパスワードには、パスワード文字列にsaltが含まれていて、区切り文字(通常は$またはその他の英数字以外の文字)が含まれています。または、dbテーブルの別の列に格納することができます。

2

た後、それは少しだ ":"

式が

パスワードDBフィールド= MD5のようなものです(パスワード+塩)+ ":" +塩

0

ジョムラが毎回ランダムに塩を生成している場合、どのように世界でそれがユーザーのログインを検証するのですか?私は通常、塩漬けのパスワードはどこかに通常のテキストとして保存されるはずだと思って、そのハッシュ版とパスワードをハッシュしたものに対して検証しました。

+0

それは、ユーザーのためのデータベースからハッシュ塩の文字列を取得し、塩部分を取り出して、再びmd5(userinput + salt)+:+塩をやります。結果がdb内の文字列をマシニングする場合、パスワードは正しいです。 – markus

関連する問題