日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > php >内容正文

php

php密码复杂,不要再强迫我设置复杂密码

發(fā)布時(shí)間:2025/3/15 php 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php密码复杂,不要再强迫我设置复杂密码 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我最近讀的一篇博文(伯樂在線注:請(qǐng)看本文最后),是關(guān)于強(qiáng)制使用更復(fù)雜的密碼。原作者說這是為了更安全,但我認(rèn)為這些技術(shù)不是最好的方式,比起「實(shí)用」來說,顯得很麻煩。

問題

你想實(shí)施更安全的密碼,我懂。但是,

請(qǐng)停止強(qiáng)迫我使用你那糟糕的密碼規(guī)則 :(

不讓這篇文章那么嚴(yán)肅,我在試圖做到這一點(diǎn)。我只是因?yàn)槟瞧恼掠辛遂`感寫下我的想法,不是針對(duì)作者。總之我是在和每一個(gè)在自己的網(wǎng)站和服務(wù)器使用這些密碼規(guī)則的人講話。我討厭這些類型的規(guī)則: 'password' => [ 'required', 'confirmed', 'min:8', 'regex:/^(?=S*[a-z])(?=S*[A-Z])(?=S*[d])S*$/',];

密碼必須包含 1 個(gè)大寫字母,1 個(gè)小寫字母和數(shù)字。

有了這樣的一個(gè)規(guī)則,密碼 Abcd1234 會(huì)通過你的有效性檢測(cè),但是 mu-icac-of-jaz-doad 不會(huì)。

我知道你大概是想讓人們使用隨機(jī)字符密碼,像 i%Mk3c4n,但是你的規(guī)則實(shí)際上并沒有這樣執(zhí)行,這些密碼是個(gè)麻煩事而且不安全,除非它們足夠長(zhǎng)——使得它們成為更麻煩的事。打出這些密碼很痛苦,尤其是在那些你沒有安裝密碼管理器的手機(jī)和計(jì)算機(jī)上。

其次,使用不安全密碼的人依舊會(huì)使用愚蠢的密碼(比如 Loverboy1964),所以你沒有幫助任何人。

停止強(qiáng)迫我使用你專制的規(guī)則并鼓勵(lì)其他人這么做——我的密碼是更好呢。

例子

那位博主允許使用的 2 個(gè)密碼:

下面這兩個(gè)是那位博主不允許使用的密碼:

解決方案

我不知道,但是如果你真的想要執(zhí)行一些比此列表上的密碼更安全的東西,那就不要強(qiáng)制不必要的復(fù)雜模式。你的驗(yàn)證規(guī)則,還是會(huì)讓人繼續(xù)用的原密碼中的大部分,只是增加一個(gè)大寫字母,或兩三個(gè)數(shù)字。

(注1:此處提到的密碼列表,里面都是 123456 、password、qwerty 之類的「愚蠢密碼」)

相反,為什么不提高密碼所需的最小長(zhǎng)度,禁止 3 位或更長(zhǎng)的數(shù)字序列 /[0-9]{3,}/?

你可以在那之后往前走一小步,不允許同樣的字符在一行(相鄰)重復(fù)兩次以上 /(.)1{2,}/,而且還沒有太多的麻煩。

這將消除大部分的困擾,并不會(huì)不必要地限制您的用戶密碼選擇。

更新

更好的是,為什么不忘記所有這些規(guī)則,只使用一個(gè)最小密碼強(qiáng)度要求。

來自 reddit 網(wǎng)友 sarciszewski 的建議:

我不明白為什么那么多人不用 Zxcvbn。 https://github.com/dropbox/zxcvbn

https://github.com/bjeavons/zxcvbn-php

我們并不特別關(guān)心你的密碼包含了什么,只要密碼強(qiáng)度估計(jì)量足夠好就行。想要用2000個(gè)’A’構(gòu)成一個(gè)ASCII penis來檢測(cè),zxcvbn 不會(huì)提醒你密碼不包含小寫字母不能使用而讓你失望。

相關(guān)漫畫

密碼強(qiáng)度 (xkcd)

《在 Laravel 中強(qiáng)制復(fù)雜密碼的建議》(英文原文)

根據(jù)簡(jiǎn)單優(yōu)雅的 Laravel 文檔,我將快速介紹如何促進(jìn)用戶使用更好的密碼。通過 Authentication 的標(biāo)準(zhǔn)文檔,我們用一個(gè)注冊(cè)表單來說明。在 Laravel 的 AuthController 中,我稍作了修改。

(伯樂在線補(bǔ)注:Laravel 是一個(gè) PHP Web 開發(fā)框架。) protected function validator(array $data) { $messages = ['password.regex' => "Your password must contain 1 lower case character 1 upper case character one number"]; return Validator::make($data, [ 'name' => 'required|max:255', 'email' => 'required|email|max:255|unique:users', 'password' => 'required|confirmed|min:8|regex:/^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])\S*$/', ], $messages); }

使用文檔 http://php.net/manual/en/function.preg-match.php 和 Laravel 文檔的正則表達(dá)式規(guī)則,我可以設(shè)置一個(gè)表達(dá)式來檢查這些字符,我還可以設(shè)置一個(gè)自定義消息如果失敗。

通過這些微小的工作我們可以用一個(gè)錯(cuò)誤消息來幫助用戶設(shè)置更好的密碼。

關(guān)于作者:LynnShaw

微博:@蕭蕭蕭寧 個(gè)人主頁(yè) · 我的文章 · 25

本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請(qǐng)注明出處,感謝您的尊重!

與50位技術(shù)專家面對(duì)面20年技術(shù)見證,附贈(zèng)技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的php密码复杂,不要再强迫我设置复杂密码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。