久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

如何在 Laravel 中對密碼使用 MD5 哈希?

How can I use MD5 hashing for passwords in Laravel?(如何在 Laravel 中對密碼使用 MD5 哈希?)
本文介紹了如何在 Laravel 中對密碼使用 MD5 哈希?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我正在將舊版應用移植到 Laravel.舊的應用程序使用 MD5 來散列密碼而不加鹽,所以我需要在 Laravel 中復制它.作為記錄,我們正在使用 salt 將密碼更改為 bcrypt,但這不是一個簡單的過程,需要用戶登錄才能這樣做 - 同時我只需要使用舊哈希登錄即可.

I'm porting over a legacy app into Laravel. The old app used MD5 to hash the passwords without a salt, so I need to replicate that within Laravel. For the record, we are changing the passwords to bcrypt with a salt, but it's not a simple process and requires a user login to do so - for the meantime I just need to get logins working with the legacy hashes.

我已按照本指南將 Auth::hash 轉換為 MD5:如何在 Laravel 4 中使用 SHA1 加密而不是 BCrypt?

I have followed this guide to convert Auth::hash to MD5: How to use SHA1 encryption instead of BCrypt in Laravel 4?

當我在注冊帳戶時以純文本格式打印密碼和在我的 make 方法中生成的哈希值時:

When I print out the password in plain text and the generated hash in my make method when registering an account:

public function make($value, array $options = array()) {
    echo $value.'<br>'.hash('md5', $value);
    exit;
    return hash('md5', $value);
}

我得到以下信息:

123456
e10adc3949ba59abbe56e057f20f883e

太好了,這正是我需要的.但是,當它被保存到數據庫時,我得到了一個完全不同的哈希值.我的猜測是 Laravel 正在其他地方添加密碼,但我找不到在哪里以及如何覆蓋它.

Great, that's what I need. However, when that is saved to the database I get a different hash entirely. My guess is that Laravel is salting the password elsewhere, but I can't find where and how to override this.

我在 app/libraries 中的 MD5Hasher.php 文件:

My MD5Hasher.php file inside app/libraries:

<?php
class MD5Hasher implements IlluminateContractsHashingHasher {

    /**
     * Hash the given value.
     *
     * @param  string  $value
     * @return array   $options
     * @return string
     */
    public function make($value, array $options = array()) {
        return hash('md5', $value);
    }

    /**
     * Check the given plain value against a hash.
     *
     * @param  string  $value
     * @param  string  $hashedValue
     * @param  array   $options
     * @return bool
     */
    public function check($value, $hashedValue, array $options = array()) {
        return $this->make($value) === $hashedValue;
    }

    /**
     * Check if the given hash has been hashed using the given options.
     *
     * @param  string  $hashedValue
     * @param  array   $options
     * @return bool
     */
    public function needsRehash($hashedValue, array $options = array()) {
        return false;
    }

}

我的MD5HashServiceProvider.php:

<?php
class MD5HashServiceProvider extends IlluminateSupportServiceProvider {

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register() {
        $this->app['hash'] = $this->app->share(function () {
            return new MD5Hasher();
        });

    }

    /**
     * Get the services provided by the provider.
     *
     * @return array
     */
    public function provides() {
        return array('hash');
    }

}

我的 AuthController.php 如下所示:

<?php

namespace AppHttpControllersAuth;

use Hash;
use AppUser;
use Validator;
use Mail;
use AppHttpControllersController;
use IlluminateFoundationAuthThrottlesLogins;
use IlluminateFoundationAuthAuthenticatesAndRegistersUsers;

class AuthController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Registration & Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles the registration of new users, as well as the
    | authentication of existing users. By default, this controller uses
    | a simple trait to add these behaviors. Why don't you explore it?
    |
    */

    use AuthenticatesAndRegistersUsers, ThrottlesLogins;

    //protected $redirectTo = '/account';

    /**
     * Create a new authentication controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest', ['except' => 'getLogout']);
    }

    /**
     * Get a validator for an incoming registration request.
     *
     * @param  array  $data
     * @return IlluminateContractsValidationValidator
     */
    protected function validator(array $data)
    {
        return Validator::make($data, [
            'name' => 'required|max:255',
            'email' => 'required|email|max:255|unique:users',
            'password' => 'required|confirmed|min:6',
        ]);
    }

    /**
     * Create a new user instance after a valid registration.
     *
     * @param  array  $data
     * @return User
     */
    protected function create(array $data)
    {
        $this->redirectTo = '/register/step-1';

        $user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
        ]);

        // email the user
        Mail::send('emails.register', ['user' => $user], function($message) use ($user)
        {
            $message->to($user->email, $user->name)->subject('Edexus - Welcome');
        });

        // email the admin
        Mail::send('emails.register-admin', ['user' => $user], function($message) use ($user)
        {
            $message->to('admins@***.com', 'Edexus')->subject('Edexus - New user sign up');
        });

        return $user;
    }
}

推薦答案

檢查用戶模型中的密碼修改器.在控制器中對密碼進行散列后,它再次對密碼進行散列.

Check out the password mutator in your User Model. It's hashing the password another time after hashing it in the controller.

我的建議是在您的創建() 和更新() 模型事件中散列一次密碼,然后將其從增變器和控制器中刪除.

My recommendation is hash the password once in your creating() and updating() model events, and remove it from the mutator and controller.

這篇關于如何在 Laravel 中對密碼使用 MD5 哈希?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Magento products by categories(按類別劃分的 Magento 產品)
Resource interpreted as image but transferred with MIME type text/html - Magento(資源被解釋為圖像但使用 MIME 類型 text/html 傳輸 - Magento)
Is there an event for customer account registration in Magento?(Magento 中是否有客戶帳戶注冊事件?)
Magento addFieldToFilter: Two fields, match as OR, not AND(Magento addFieldToFilter:兩個字段,匹配為 OR,而不是 AND)
quot;Error 404 Not Foundquot; in Magento Admin Login Page(“未找到錯誤 404在 Magento 管理員登錄頁面)
Get Order Increment Id in Magento(在 Magento 中獲取訂單增量 ID)
主站蜘蛛池模板: 日韩av免费看| 一本大道久久a久久精二百 国产成人免费在线 | 色婷婷av99xx | 午夜黄色 | 亚洲精品一区二区二区 | www.欧美视频 | 美女国产精品 | 日本网站在线看 | 99re视频在线 | 天天拍天天草 | 国产在线一区二区三区 | 日韩精品无码一区二区三区 | 亚洲欧美日韩精品久久亚洲区 | 欧美精品片 | 欧美成人一区二免费视频软件 | 欧洲精品一区 | 欧美精品久久一区 | 99pao成人国产永久免费视频 | 成人av在线大片 | 精品91久久 | 色综合久久天天综合网 | 久久精品久久精品久久精品 | 婷婷毛片| 久久久久久久久久久爱 | 日韩激情在线 | 欧美aaaaa | 国产成人精品免费视频大全最热 | 国产91久久久久久久免费 | 久久久久中文字幕 | 欧美一区二区免费 | 亚洲一区二区三 | 丝袜久久 | 久久综合影院 | 中文字幕免费视频 | 国产精品久久久久久福利一牛影视 | 国产成人网 | 男女网站免费观看 | 伊人超碰 | 黄色香蕉视频在线观看 | 精品久久久久一区二区国产 | 99热热99|