首页 / PHP / Laravel无法更改默认加密方式?
Laravel无法更改默认加密方式?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Laravel无法更改默认加密方式?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1116字,纯文字阅读大概需要2分钟。
内容图文
我想把默认的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;
}
}
回复内容:
我想把默认的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;
}
}
你自己定义一个类然后设置一个静态方法来做这件事情会更灵活,你说呢。如果要确保安全性更高,建议不要用MD5,而是用SHA-2版本。PHP的Hash扩展提供的方法(http://php.com/manual/zh/function.hash.php)可以使用SHA-2
内容总结
以上是互联网集市为您收集整理的Laravel无法更改默认加密方式?全部内容,希望文章能够帮你解决Laravel无法更改默认加密方式?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。