php - Laravel 无法更改默认加密方式?
PHP中文网
PHP中文网 2017-04-10 16:08:44
0
1
295

我想把默认的bcrypt(password)替换成md5(password+salt),在不更改vendor文件的情况下,只能自己添加一个ServiceProvider替换原来的。于是我自己写了一个AddSaltHasher,但是却发现在make方法中无法获取$salt,有什么办法可以获取这个值吗?

namespace App\Services; use RuntimeException; use Illuminate\Contracts\Hashing\Hasher as HasherContract; class AddSaltHasher implements HasherContract { public function make($value, array $options = []) { $hash = md5($value.$salt);//<-无法获取数据库中存放的salt if ($hash === false) { throw new RuntimeException('addsalt hashing not supported.'); } return $hash; } public function check($value, $hashedValue, array $options = []) { if (strlen($hashedValue) === 0) { return false; } $value = self::make($value); if($value!=$hashedValue){ return false; } return true; } public function needsRehash($hashedValue, array $options = []) { return false; } }
PHP中文网
PHP中文网

认证0级讲师

全員に返信 (1)
刘奇

你自己定义一个类然后设置一个静态方法来做这件事情会更灵活,你说呢。如果要确保安全性更高,建议不要用MD5,而是用SHA-2版本。PHP的Hash扩展提供的方法(http://php.net/manual/zh/function.hash.php)可以使用SHA-2

いいねを押す+0
    最新のダウンロード
    詳細>
    ウェブエフェクト
    公式サイト
    サイト素材
    フロントエンドテンプレート
    私たちについて 免責事項 Sitemap
    PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!