2017-04-27 1 views
-1

Ich benutze diesen Code, um das Passwort zu verschlüsseln, aber es funktioniert nicht PHP 5.6 oder höhere Versionen. Bitte schlagen Sie mir einen neuen Code vor, ohne algo zu ändern.php Verschlüsselung funktioniert nicht in Version 5.6 oder höher?

bitte geben Sie mir neuen Code ohne Algorithmus zu ändern.

<?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

Warum sollte man ein Passwort so verschlüsseln wollen?!? – arkascha

+1

Was bedeutet _ "nicht funktioniert" _? Fehler? Falsches Ergebnis? In jedem Fall. ** Sie sollten niemals verschlüsselte Passwörter speichern. ** Das ist ein großes Sicherheitsrisiko. Sie sollten _only_ Passwort Hashes speichern! –

+0

Überprüfen Sie zuerst, ob mcrypt installiert ist oder nicht ?. Wenn es nicht installiert ist, installieren Sie es von einem Drittanbieter. –

Antwort

1

Gerade password_hash und password_verify verwenden. Es ist der sicherste Weg, Passwörter zu schützen. Zum Beispiel:

$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

Verwandte Themen