2017-02-07 13 views
1

codeigniterを使用してログインしようとしていますが、できません。 それから、私はDBからパスワードをコピーして、それをdycription-> decode()関数に渡そうとしました。空の文字列を返しています。 文字列codeigniter暗号化/復号化関数が空の文字列を返します

そして、このコードも返す空の文字列

$decoded_password = $this->encryption->decode($encoded_password); 
$decoded_username = $this->encryption->decode($encoded_username); 

は、私がここで間違って何をやっている(0) "":ここで

var_dump($this->encryption->decode('s0xxxxxxXjrUxxxxxxBTxxxxhc')); 

出力したコードです?

UPDATE:文字列を暗号化してから、それをPRINTしてから暗号化した後、NULL /空を返し、解読後にNULL/Empty(明白)を返します。 コード

$encval = $this->encryption->encode('codeigniter'); 
echo $encval.' -- IT WAS --'.'codeigniter'; 
echo "<br>---------------------------------------------------<br>"; 
echo $this->encryption->decode($encval); 

OUTPUTを下回っている:^何も

+1

のおかげでhttp://php.net/manual/en/function.password-hash.php – user4419336

+0

、しかし、私は持っています既にCI暗号化を使用しているシステムを構築しました。 –

+0

@ NomanAli wolfgang1983は正しいです、あなたは解読できるような方法であなたのパスワードを保存すべきではありません。彼が提案する機能は正しいアプローチです。 –

答えて

1

見て、そこCIで暗号化を使用するには2通りの方法があり、どちらもパスワード(使用ハッシュ)のために使用すべきではありません。最初にパスワードを暗号化してDBに格納していたものを調べてください。また、パスワードを暗号化する際にKEYが使用されている可能性があります。

以下は、CIで利用可能な2つの暗号化ライブラリです。

1.Encryptクラス:https://www.codeigniter.com/user_guide/libraries/encrypt.html

2.EncryptionのLib:https://www.codeigniter.com/user_guide/libraries/encryption.html

+0

次のように '$ password = $ this-> input-> post( 'password')を確認してください。 //ユーザーが登録フォームに入力したものです。 \t \t $ encrypted_pa​​ssword = $ this-> encryption-> encode($ password); //私たちの暗号化されたパスワード ' –

+0

だから**暗号化**が使われます。 –

+0

試してみて、$ plain_text = 'これはプレーンテキストのメッセージです!'; $ ciphertext = $ this-> encryption-> encrypt($ plain_text); //出力:これはプレーンテキストのメッセージです! echo $ this-> encryption-> decrypt($ ciphertext); – JoshulSharma

0

私はそれを破ったので、自分のアプリケーションで現在使用されるライブラリーが少し変更された、CodeIgniterのの暗号化ライブラリを使用してこの問題を解決してきました。今すぐ

$this->encryption->decrypt($cipher-text); 
$this->encryption->encrypt($plain-text); 

これは完全に動作しています。すべてのエンコード/デコードを暗号化/復号化で置き換えなければならなかった。大丈夫です

私は、パスワードの使用のためにCodeIgniterの暗号化を使用することはありませんあなたの時間まいら

関連する問題