中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

在網(wǎng)站開發(fā)時(shí)你還是只用md5加密密碼嗎?

2021-01-27    分類: 網(wǎng)站建設(shè)

開發(fā)網(wǎng)站離不開用戶的注冊(cè)與登錄,今天來說說在網(wǎng)站開發(fā)的時(shí)候關(guān)于用戶密碼的保存方式,傳統(tǒng)的方式有以下幾種

  • 明文存儲(chǔ):肉眼就可以識(shí)別,沒有任何安全性。 誰用誰傻缺
  • 加密存儲(chǔ):通過一定的變換形式,使得密碼原文不易被識(shí)別。

密碼加密的幾類方式:

  1. 明文轉(zhuǎn)碼加密:BASE64, 7BIT等,這種方式只是個(gè)障眼法,不是真正的加密。它是一種可逆的加密。
  2. 對(duì)稱算法加密:DES, AES等,如果密鑰泄露,加密就會(huì)失效了。
  3. 簽名算法加密:也可以理解為單向哈希加密,比如MD5, SHA1等。加密算法固定,容易被暴力破解。如果密碼相同,得到的哈希值是一樣的。

如果你只是簡單的使用md5將用戶的密碼進(jìn)行加密,那么如果你的庫被別人拖了,現(xiàn)在有很多可以直接反查的網(wǎng)絡(luò)工具就可以進(jìn)行暴力破解,那么能不能有一種方法,用戶的明文密碼即使多次使用,但是數(shù)據(jù)庫中記錄的加密密碼也是不同的,這樣即使數(shù)據(jù)庫被拖了,那么也很難暴力破解,真的有這種方法嗎?

答案是肯定的,有一種加密方式叫加鹽哈希加密,加密時(shí)混入一段“隨機(jī)”字符串(鹽值)再進(jìn)行哈希加密。即使密碼相同,如果鹽值不同,那么哈希值也是不一樣的。現(xiàn)在網(wǎng)站開發(fā)中主要是運(yùn)用這種加密方法

pip install Werkzeug

可以看到,密碼是123,但是使用該函數(shù)每次計(jì)算出來的值都是不一樣的

'pbkdf2:sha256:50000$fESwY4Cl$38fdf741069ef37c207211b9bee69514582dc366660563d75c00e7cbfd7cbd8a'

'pbkdf2:sha256:50000$hUhR8Gr3$73d44814d5cd490c04e0559141fb327c31766a0314d82ee05e33c33e1559af78'

這樣即使你的數(shù)據(jù)庫被黑客拖了,通過暴力破解也是非常困難的。

generate_password_hash 函數(shù)定義為

generate_password_hash(password, method='pbkdf2:sha256', salt_length=8)

參數(shù) 「password」 為明文密碼,「method」 哈希的方式,格式為 pbpdf2: 主要有sha1,sha256,md5

salt_length 鹽值的長度,默認(rèn)為8

>>> generate_password_hash('123',method='pbkdf2:sha1',salt_length=10)

'pbkdf2:sha1:50000$4GUBRzzizn$45b0f6b84a4ca4352b45feea8283fc48186f9ee8'

>>> generate_password_hash('123',method='pbkdf2:sha1',salt_length=8)

'pbkdf2:sha1:50000$4kHPpS9R$1f87c09c052342fd0d65b75aa70ababb1c17e7df'

>>> generate_password_hash('123',method='pbkdf2:md5',salt_length=8)

'pbkdf2:md5:50000$zppMHqux$01acb41e0b2858bbc849abf77692a9c0'

>>> generate_password_hash('123',method='pbkdf2:md5',salt_length=8)

'pbkdf2:md5:50000$rMaQutjR$1cc67c05e063cec0c8e5f8e048ddb5e1'

結(jié)語

這個(gè)加鹽哈希加密以后的密文,放到另外一臺(tái)服務(wù)器上也是可以校驗(yàn)通過的,如果做網(wǎng)站數(shù)據(jù)庫遷移也不用重新生成數(shù)據(jù),使用這套加密算法可以很大程度上規(guī)避暴力破解密碼,還是那名老話,密碼是123456的就算使用再牛逼的加密你依然是不安全的,另外撞庫也是不可避免的,所以作為用戶可以嘗試不同的網(wǎng)站使用不同的密碼來規(guī)避撞庫問題。

感謝評(píng)論區(qū)里幫忙指正,RSA是非對(duì)稱加密,DES和AES是對(duì)稱加密,并且md5不算是加密算法,只能說它可以起到加密明文的效果。

由于今日頭條上發(fā)的文章對(duì)于代碼排版不太方便,所以我將代碼片段都使用了截圖的方式,想要復(fù)制代碼請(qǐng)點(diǎn)擊 "了解更多"來查看原文或者微信搜索公眾號(hào)"序語程言"

當(dāng)前標(biāo)題:在網(wǎng)站開發(fā)時(shí)你還是只用md5加密密碼嗎?
當(dāng)前URL:http://www.rwnh.cn/news/97635.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、定制網(wǎng)站、品牌網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化、關(guān)鍵詞優(yōu)化虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
白河县| 沁水县| 鹤峰县| 肇庆市| 彝良县| 天长市| 博湖县| 浦县| 郑州市| 如皋市| 伊宁市| 延吉市| 苗栗市| 石阡县| 巴彦县| 新和县| 商水县| 宁城县| 阿拉善左旗| 宁晋县| 玉山县| 天全县| 沭阳县| 武胜县| 仁布县| 黎城县| 佛山市| 嘉黎县| 商南县| 大余县| 霍邱县| 绥滨县| 繁昌县| 江油市| 岗巴县| 马公市| 吐鲁番市| 封开县| 中阳县| 积石山| 邵阳市|