2017-04-27 16 views
-1

私はこのコードを使用してパスワードを暗号化していますが、php 5.6以降のバージョンは動作しません。 algoを変更せずに新しいコードを提案してください。php暗号化は5.6以降のバージョンでは機能しませんか?

アルゴリズムを変更せずに新しいコードを教えてください。

<?php 
class Encryption { 
    var $skey = "844958uyjd875e89t5f4h6j4h5g"; // you can change it 

    public function safe_b64encode($string) { 
     $data = base64_encode($string); 
     $data = str_replace(array('+','/','='),array('-','_',''),$data); 
     return $data; 
    } 

    public function safe_b64decode($string) { 
     $data = str_replace(array('-','_'),array('+','/'),$string); 
     $mod4 = strlen($data) % 4; 
     if ($mod4) { 
      $data .= substr('====', $mod4); 
     } 
     return base64_decode($data); 
    } 

    public function encode($value){ 
     if(!$value){return false;} 
     $text = $value; 
     $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
     $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
     $crypttext = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $this->skey, $text, MCRYPT_MODE_ECB, $iv); 
     return trim($this->safe_b64encode($crypttext)); 
    } 

    public function decode($value){ 
     if(!$value){return false;} 
     $crypttext = $this->safe_b64decode($value); 
     $iv_size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_ECB); 
     $iv = mcrypt_create_iv($iv_size, MCRYPT_RAND); 
     $decrypttext = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $this->skey, $crypttext, MCRYPT_MODE_ECB, $iv); 
     return trim($decrypttext); 
    } 
} 
?> 
+0

なぜ一つはパスワードように暗号化する必要があるのでしょうか!? – arkascha

+1

_「動作しません」とは何ですか?エラー?間違った結果?どちらにしても。 **暗号化されたパスワードを保存する必要はありません。**これは大きなセキュリティリスクです。あなたは_only_パスワードハッシュを保存するべきです! –

+0

まず、mcryptがインストールされているかどうかを確認します。それがインストールされていない場合は、それを第三者からインストールします。 –

答えて

1

ちょうどpassword_hashpassword_verifyを使用してください。パスワードを保護する最も安全な方法です。たとえば :

$password_hash = password_hash("yourpassword", PASSWORD_DEFAULT); 

if (password_verify('yourpassword', $password_hash)) { 
    echo 'Password is valid!'; 
} else { 
    echo 'Invalid password.'; 
} 

http://php.net/manual/en/function.password-hash.php

関連する問題