lukasjankowski/laravel-safepass

用于检查密码是否真的安全的laravel 5密码验证包

1.0.1 2017-08-16 23:02 UTC

This package is not auto-updated.

Last update: 2024-09-24 17:32:42 UTC


README

Laravel-Safepass for Laravel 5

此包允许您根据Zxcvbn检查给定的密码,并用于验证其强度/熵。

注意:根据您的应用程序负载的强度,可能更明智地选择其他工具,因为检查可能会消耗大量的计算时间。

原因

我对使用一些任意正则表达式来验证密码是否包含至少一个大小写字母、数字等解决方案感到厌倦。这些要求根本不是安全的,更不用说它们是您试图达成的目标的反面了。

请参阅:xkcdcodinghorror以获取解释。

本包使用 - 如上所述 - https://github.com/bjeavons/zxcvbn-php/作为计算密码熵和估计破解时间的手段。然后,它将此值转换为百分比,以便更方便地编写规则。

该百分比基于10^8秒。

  • 因此,100%大约是3年,
  • 50%将是大约1.5年,
  • 10%将是大约115天等。

默认值是50%。

安装

通过composer要求

composer require lukasjankowski/laravel-safepass

在您的config/app.php中包含服务提供者。

'providers' => [
    // ...
    LukasJankowski\SafePass\SafePassServiceProvider::class
];

用法

只需将safepass作为规则添加到您的请求验证中。

示例

 public function create(Request $request)
    {
        $this->validate(
            $request,
            [
                'name' => 'required|min:4',
                'password' => 'required|safepass',
            ]
        );
        
        return 'Created.';
    }

如果您想覆盖50%的标准,可以添加一个参数到规则中

 public function create(Request $request)
    {
        $this->validate(
            $request,
            [
                'name' => 'required|min:4',
                'password' => 'required|safepass:100', // In percent
            ]
        );
        
        return 'Created.';
    }

默认错误信息是

    'safepass' => 'The password you entered is easily guessable. Please use a more complex one.'

您可以通过与其他规则相同的方式覆盖它。

待办事项

  • 单元测试