を使用して塩とパスワードを暗号化/復号化するためのパスワード+塩どのように私は取得しようとしています何libsodiumのPHP
- 暗号化されlibsodium
- ストアとそれがデータベース
- にすると、それを読んで、それを解読(平文のパスワードを認証のために返す)
パスワードを暗号化/復号化するために使用したい塩のリストがあります。 私はパスワードを暗号化するときにハッシュを取得するので、動作するようですが、私は常に戻り値としてfalseを取得する復号化します。
私はlibsodiumで暗号化/復号化に間違った方法を使用していますか、まったく間違った方向に運転していますか?暗号化/復号化のための
マイソース:
function encrypt_libsodium($to_encrypt, $salt_to_use){
if(!$data || !$salt_to_use){
return null;
}
//get stored salt
$this->key_ = substr(md5($this->pw_key[$salt_to_use].'_'), 0, $this->ks);
//some libsodium specific stuff
$out_len = \Sodium\CRYPTO_SIGN_SEEDBYTES;
$ops_limit = \Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_OPSLIMIT_INTERACTIVE;
$mem_limit =\Sodium\CRYPTO_PWHASH_SCRYPTSALSA208SHA256_MEMLIMIT_INTERACTIVE;
//create hash using libsodium
$hash = \Sodium\crypto_pwhash($out_len, $to_encrypt, $this->key_,$ops_limit, $mem_limit);
return $hash;
}
function decrypt_libsodium($hash, $salt_to_use){
if(!$hash || !$what){
return null;
}
//get stored salt
$this->key_ = substr(md5($this->pw_key[$salt_to_use].'_'), 0, $this->ks);
//get verification hash
$decrypted = \Sodium\crypto_pwhash_scryptsalsa208sha256_str_verify($this->key_, $hash);
return $decrypted;
}
は、私は任意の助けに感謝します!
よろしくドム
HASHはそうあなたがすることができるすべては、プレーンテキストのパスワードをハッシュで、reversableする(はず)ではありません同じ方法でHASHを比較してください – RiggsFolly
なぜ、認証のために平文に変換できる必要があるのか説明してください。 –
私は認証するためのパスワードを得て、それをローカルの暗号化されたデータベースに保存したいが、私はそれを認証のためにプレーンなものにする必要がある。 – Mayrhofer