真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringBoot中密碼加密的兩種方法-創(chuàng)新互聯(lián)

先說(shuō)一句:密碼是無(wú)法解密的。大家也不要再問(wèn)松哥微人事項(xiàng)目中的密碼怎么解密了!

站在用戶(hù)的角度思考問(wèn)題,與客戶(hù)深入溝通,找到伍家崗網(wǎng)站設(shè)計(jì)與伍家崗網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶(hù)體驗(yàn)好的作品,建站類(lèi)型包括:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋伍家崗地區(qū)。

密碼無(wú)法解密,還是為了確保系統(tǒng)安全。今天松哥就來(lái)和大家聊一聊,密碼要如何處理,才能在大程度上確保我們的系統(tǒng)安全。

1.為什么要加密

2011 年 12 月 21 日,有人在網(wǎng)絡(luò)上公開(kāi)了一個(gè)包含 600 萬(wàn)個(gè) CSDN 用戶(hù)資料的數(shù)據(jù)庫(kù),數(shù)據(jù)全部為明文儲(chǔ)存,包含用戶(hù)名、密碼以及注冊(cè)郵箱。事件發(fā)生后 CSDN 在微博、官方網(wǎng)站等渠道發(fā)出了聲明,解釋說(shuō)此數(shù)據(jù)庫(kù)系 2009 年備份所用,因不明原因泄露,已經(jīng)向警方報(bào)案,后又在官網(wǎng)發(fā)出了公開(kāi)道歉信。在接下來(lái)的十多天里,金山、網(wǎng)易、京東、當(dāng)當(dāng)、新浪等多家公司被卷入到這次事件中。整個(gè)事件中最觸目驚心的莫過(guò)于 CSDN 把用戶(hù)密碼明文存儲(chǔ),由于很多用戶(hù)是多個(gè)網(wǎng)站共用一個(gè)密碼,因此一個(gè)網(wǎng)站密碼泄露就會(huì)造成很大的安全隱患。由于有了這么多前車(chē)之鑒,我們現(xiàn)在做系統(tǒng)時(shí),密碼都要加密處理。

這次泄密,也留下了一些有趣的事情,特別是對(duì)于廣大程序員設(shè)置密碼這一項(xiàng)。人們從 CSDN 泄密的文件中,發(fā)現(xiàn)了一些好玩的密碼,例如如下這些:

  • ppnn13%dkstFeb.1st 這段密碼的中文解析是:娉娉裊裊十三余,豆蔻梢頭二月初。
  • csbt34.ydhl12s 這段密碼的中文解析是:池上碧苔三四點(diǎn),葉底黃鸝一兩聲
  • ...

等等不一而足,你會(huì)發(fā)現(xiàn)很多程序員的人文素養(yǎng)還是非常高的,讓人嘖嘖稱(chēng)奇。

2.加密方案

密碼加密我們一般會(huì)用到散列函數(shù),又稱(chēng)散列算法、哈希函數(shù),這是一種從任何數(shù)據(jù)中創(chuàng)建數(shù)字“指紋”的方法。

散列函數(shù)把消息或數(shù)據(jù)壓縮成摘要,使得數(shù)據(jù)量變小,將數(shù)據(jù)的格式固定下來(lái),然后將數(shù)據(jù)打亂混合,重新創(chuàng)建一個(gè)散列值。散列值通常用一個(gè)短的隨機(jī)字母和數(shù)字組成的字符串來(lái)代表。好的散列函數(shù)在輸入域中很少出現(xiàn)散列沖突。在散列表和數(shù)據(jù)處理中,不抑制沖突來(lái)區(qū)別數(shù)據(jù),會(huì)使得數(shù)據(jù)庫(kù)記錄更難找到。

我們常用的散列函數(shù)有 MD5 消息摘要算法、安全散列算法(Secure Hash Algorithm)。

但是僅僅使用散列函數(shù)還不夠,單純的只使用散列函數(shù),如果兩個(gè)用戶(hù)密碼明文相同,生成的密文也會(huì)相同,這樣就增加的密碼泄漏的風(fēng)險(xiǎn)。

為了增加密碼的安全性,一般在密碼加密過(guò)程中還需要加鹽,所謂的鹽可以是一個(gè)隨機(jī)數(shù)也可以是用戶(hù)名,加鹽之后,即使密碼明文相同的用戶(hù)生成的密碼密文也不相同,這可以極大的提高密碼的安全性。

傳統(tǒng)的加鹽方式需要在數(shù)據(jù)庫(kù)中有專(zhuān)門(mén)的字段來(lái)記錄鹽值,這個(gè)字段可能是用戶(hù)名字段(因?yàn)橛脩?hù)名唯一),也可能是一個(gè)專(zhuān)門(mén)記錄鹽值的字段,這樣的配置比較繁瑣。

Spring Security 提供了多種密碼加密方案,官方推薦使用 BCryptPasswordEncoder,BCryptPasswordEncoder 使用 BCrypt 強(qiáng)哈希函數(shù),開(kāi)發(fā)者在使用時(shí)可以選擇提供 strength 和 SecureRandom 實(shí)例。strength 越大,密鑰的迭代次數(shù)越多,密鑰迭代次數(shù)為 2^strength。strength 取值在 4~31 之間,默認(rèn)為 10。

不同于 Shiro 中需要自己處理密碼加鹽,在 Spring Security 中,BCryptPasswordEncoder 就自帶了鹽,處理起來(lái)非常方便。

3.實(shí)踐

3.1 codec 加密

commons-codec 是一個(gè) Apache 上的開(kāi)源項(xiàng)目,用它可以方便的實(shí)現(xiàn)密碼加密。松哥在 V 部落 項(xiàng)目中就是采用的這種方案(https://github.com/lenve/VBlog)。在 Spring Security 還未推出 BCryptPasswordEncoder 的時(shí)候,commons-codec 還是一個(gè)比較常見(jiàn)的解決方案。

所以,這里我先來(lái)給大家介紹下 commons-codec 的用法。

首先我們需要引入 commons-codec 的依賴(lài):


  commons-codec
  commons-codec
  1.11

網(wǎng)站題目:SpringBoot中密碼加密的兩種方法-創(chuàng)新互聯(lián)
文章路徑:http://weahome.cn/article/gjpdd.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部