Вход Регистрация
Файл: gapps/vendor/laravel/framework/src/Illuminate/Hashing/BcryptHasher.php
Строк: 78
<?php

namespace IlluminateHashing;

use 
RuntimeException;
use 
IlluminateContractsHashingHasher as HasherContract;

class 
BcryptHasher implements HasherContract
{
    
/**
     * Default crypt cost factor.
     *
     * @var int
     */
    
protected $rounds 10;

    
/**
     * Hash the given value.
     *
     * @param  string  $value
     * @param  array   $options
     * @return string
     *
     * @throws RuntimeException
     */
    
public function make($value, array $options = [])
    {
        
$cost = isset($options['rounds']) ? $options['rounds'] : $this->rounds;

        
$hash password_hash($valuePASSWORD_BCRYPT, ['cost' => $cost]);

        if (
$hash === false) {
            throw new 
RuntimeException('Bcrypt hashing not supported.');
        }

        return 
$hash;
    }

    
/**
     * 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 = [])
    {
        if (
strlen($hashedValue) === 0) {
            return 
false;
        }

        return 
password_verify($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 = [])
    {
        
$cost = isset($options['rounds']) ? $options['rounds'] : $this->rounds;

        return 
password_needs_rehash($hashedValuePASSWORD_BCRYPT, ['cost' => $cost]);
    }

    
/**
     * Set the default password work factor.
     *
     * @param  int  $rounds
     * @return $this
     */
    
public function setRounds($rounds)
    {
        
$this->rounds = (int) $rounds;

        return 
$this;
    }
}
Онлайн: 2
Реклама