密碼加密的方式有:1、利用對(duì)稱加密算法(例如3DES、AES)進(jìn)行加密,使用這種方式加密是可以通過解密來還原出原始密碼的,當(dāng)然前提條件是需要獲取到密鑰;2、使用單向HASH算法(例如MD5、SHA1)進(jìn)行密碼,但無法通過計(jì)算還原出原始密碼;3、使用特殊的單向HASH算法進(jìn)行密碼;4、使用PBKDF2算法進(jìn)行加密;5、使用BCrypt算法進(jìn)行加密;6、用SCrypt算法進(jìn)行加密。
本教程操作環(huán)境:windows7系統(tǒng)、DELL G3電腦
作為一名Web開發(fā)人員,我們經(jīng)常需要與用戶的帳號(hào)系統(tǒng)打交道,而這其中最大的挑戰(zhàn)就是如何保護(hù)用戶的密碼。密碼是一個(gè)網(wǎng)站系統(tǒng)最重要的護(hù)盾,如果把網(wǎng)站系統(tǒng)比作城堡,那密碼就是城門。關(guān)于如何安全的存儲(chǔ)密碼以及使用何種算法總是有很多的爭論:MD5、SHA1,SHA256、PBKDF2,Bcrypt、Scrypt、Argon2、明文??
常見的7種密碼加密方式
??我們?cè)摬捎檬裁捶绞絹肀Wo(hù)用戶的密碼呢?以下幾種方式是常見的密碼保存方式:
算法 | 特點(diǎn) | 有效破解方式 | 破解難度 | 其它 |
---|---|---|---|---|
對(duì)稱加密 | 可以解密出明文 | 獲取密鑰 | 中 | 需要確保密鑰不泄露 |
單向HASH | 不可解密 | 碰撞、彩虹表 | 中 | |
特殊HASH | 不可解密 | 碰撞、彩虹表 | 中 | 需要確?!胞}”不泄露 |
Pbkdf2 | 不可解密 | 無 | 難 | 需要設(shè)定合理的參數(shù) |
BCrypt | 不可解密 | 無 | 難 | 需要設(shè)定合理的參數(shù) |
SCrypt | 不可解密 | 無 | 難 | 需要設(shè)定合理的參數(shù) |
Argon2 | 不可解密 | 無 | 難 |
1、使用對(duì)稱加密算法來保存
使用情況: ★★☆☆☆
??比如3DES、AES等算法,使用這種方式加密是可以通過解密來還原出原始密碼的,當(dāng)然前提條件是需要獲取到密鑰。不過既然大量的用戶信息已經(jīng)泄露了,密鑰很可能也會(huì)泄露,當(dāng)然可以將一般數(shù)據(jù)和密鑰分開存儲(chǔ)、分開管理,但要完全保護(hù)好密鑰也是一件非常復(fù)雜的事情,所以這種方式并不是很好的方式。
2、使用MD5、SHA1等單向HASH算法保護(hù)密碼
使用情況: ★★★☆☆
??使用這些算法后,無法通過計(jì)算還原出原始密碼,而且實(shí)現(xiàn)比較簡單,因此很多互聯(lián)網(wǎng)公司都采用這種方式保存用戶密碼,曾經(jīng)這種方式也是比較安全的方式,但隨著彩虹表技術(shù)的興起,可以建立彩虹表進(jìn)行查表破解,目前這種方式已經(jīng)很不安全了。
3、特殊的單向HASH算法
使用情況: ★★★☆☆
??由于單向HASH算法在保護(hù)密碼方面不再安全,于是有些公司在單向HASH算法基礎(chǔ)上進(jìn)行了加鹽、多次HASH等擴(kuò)展,這些方式可以在一定程度上增加破解難度,對(duì)于加了“固定鹽”的HASH算法,需要保護(hù)“鹽”不能泄露,這就會(huì)遇到“保護(hù)對(duì)稱密鑰”一樣的問題,一旦“鹽”泄露,根據(jù)“鹽”重新建立彩虹表可以進(jìn)行破解,對(duì)于多次HASH,也只是增加了破解的時(shí)間,并沒有本質(zhì)上的提升。
4、PBKDF2
使用情況: ★★★★☆
??該算法原理大致相當(dāng)于在HASH算法基礎(chǔ)上增加隨機(jī)鹽,并進(jìn)行多次HASH運(yùn)算,隨機(jī)鹽使得彩虹表的建表難度大幅增加,而多次HASH也使得建表和破解的難度都大幅增加。使用PBKDF2算法時(shí),HASH算法一般選用sha1或者sha256,隨機(jī)鹽的長度一般不能少于8字節(jié),HASH次數(shù)至少也要1000次,這樣安全性才足夠高。一次密碼驗(yàn)證過程進(jìn)行1000次HASH運(yùn)算,對(duì)服務(wù)器來說可能只需要1ms,但對(duì)于破解者來說計(jì)算成本增加了1000倍,而至少8字節(jié)隨機(jī)鹽,更是把建表難度提升了N個(gè)數(shù)量級(jí),使得大批量的破解密碼幾乎不可行,該算法也是美國國家標(biāo)準(zhǔn)與技術(shù)研究院推薦使用的算法。
??PBKDF2 已經(jīng)存在很長時(shí)間了,像之前文章討論的一樣,它有點(diǎn)過時(shí)了:輕松的在多核系統(tǒng)(GPU)上實(shí)現(xiàn)并行,這對(duì)于定制系統(tǒng)(FPGA/ASIC)來說微不足道。
5、BCrypt
使用情況: ★★★★☆
??BCrypt 在1999年就產(chǎn)生了,并且在對(duì)抗 GPU/ASIC 方面要優(yōu)于 PBKDF2,但是我還是不建議你在新系統(tǒng)中使用它,因?yàn)樗陔x線破解的威脅模型分析中表現(xiàn)并不突出。 盡管有一些數(shù)字加密貨幣依賴于它(即:NUD),但它并沒有因此獲得較大的普及,因此,F(xiàn)PGA/ASIC 社區(qū)也并沒有足夠的興趣來構(gòu)建它的硬件實(shí)現(xiàn)。 話雖如此,Solar Designer(OpenWall)、Malvoni 和 Knezovic(薩格勒布大學(xué))在 2014 年撰寫了一篇論文,這篇文章描述了一種混合使用 ARM/FPGA 的單片系統(tǒng)來攻擊該算法。
6、SCrypt
使用情況: ★★★★☆
??SCrypt 在如今是一個(gè)更好的選擇:比 BCrypt設(shè)計(jì)得更好(尤其是關(guān)于內(nèi)存方面)并且已經(jīng)在該領(lǐng)域工作了 10 年。另一方面,它也被用于許多加密貨幣,并且我們有一些硬件(包括 FPGA 和 ASIC)能實(shí)現(xiàn)它。 盡管它們專門用于采礦,也可以將其重新用于破解。
7、Argon2
使用情況: ★★★★★
??Argon2 基于 AES 實(shí)現(xiàn),現(xiàn)代的 x64 和 ARM 處理器已經(jīng)在指令集擴(kuò)展中實(shí)現(xiàn)了它,從而大大縮小了普通系統(tǒng)和攻擊者系統(tǒng)之間的性能差距,
??Argon2 有三個(gè)主要的版本:
- Argon2i 是對(duì)抗側(cè)信道攻擊的最安全選擇,Argon2i 使用與數(shù)據(jù)無關(guān)的內(nèi)存訪問,這是密碼哈希的首選方法,Argon2i 對(duì)內(nèi)存進(jìn)行了更多的傳遞,以防止權(quán)衡攻擊的發(fā)生。
- Argon2d 是抵抗 GPU 破解攻擊的最安全選擇,并且Argon2 在 2015 年 7 月贏得了密碼哈希競賽。Argon2d 使用依賴數(shù)據(jù)的內(nèi)存訪問,這使得它很適合用于加密數(shù)字貨幣和工作量證明的應(yīng)用程序,而不會(huì)受到側(cè)信道定時(shí)攻擊的威脅。
- Argon2id 在內(nèi)存第一次迭代的前半部分充當(dāng) Argon2i,其余部分則充當(dāng) Argon2d。因此,基于時(shí)間、 空間的平衡,它既提供了側(cè)信道攻擊保護(hù)也節(jié)約了暴力開銷。
??如果你擔(dān)心側(cè)信道攻擊(例如:惡意數(shù)據(jù)緩存加載/幽靈漏洞,它允許通過基于緩存的側(cè)信道讀取同一硬件上其他正在運(yùn)行的進(jìn)程的私有內(nèi)存數(shù)據(jù)),你應(yīng)該使用 Argon2i,否則使用 Argon2d。 如果你不確定或你對(duì)混合方法感到滿意,你可以使用 Argon2id 來獲得兩個(gè)方面的優(yōu)勢(shì)。
??源代碼可以在 Github 上獲得,使用兼容 C89 的 C 語言編寫,并在知識(shí)共享許可協(xié)議下獲取許可,并且可以在大多數(shù) ARM、x86 和 x64 架構(gòu)的硬件上編譯。
…
溫馨提醒:
??在2019 年之后,就有相關(guān)專家提出建議盡量不要使用 PBKDF2 或 BCrypt,并強(qiáng)烈建議將 Argon2(最好是 Argon2id)用于最新系統(tǒng)。而Scrypt 是當(dāng) Argon2 不可用時(shí)的不二選擇,但要記住,它在側(cè)側(cè)信道泄露方面也存在相同的問題。
更多相關(guān)知識(shí),請(qǐng)?jiān)L問常見問題欄目!
以上是密碼加密的方式有哪些的詳細(xì)內(nèi)容。更多信息請(qǐng)關(guān)注PHP中文網(wǎng)其他相關(guān)文章!

熱AI工具

Undress AI Tool
免費(fèi)脫衣服圖片

Undresser.AI Undress
人工智能驅(qū)動(dòng)的應(yīng)用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover
用于從照片中去除衣服的在線人工智能工具。

Clothoff.io
AI脫衣機(jī)

Video Face Swap
使用我們完全免費(fèi)的人工智能換臉工具輕松在任何視頻中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的代碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
功能強(qiáng)大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版
神級(jí)代碼編輯軟件(SublimeText3)

通貨膨脹是物價(jià)普遍上漲的現(xiàn)象,原因包括需求拉動(dòng)型、成本推動(dòng)型和貨幣超發(fā)型;其影響有存款縮水、工資追不上物價(jià)及貸款變“劃算”;應(yīng)對(duì)方式有適當(dāng)投資、提升收入來源、控制消費(fèi)節(jié)奏和關(guān)注政策動(dòng)向。

寫好簡歷的關(guān)鍵在于明確目標(biāo)、結(jié)構(gòu)簡潔、內(nèi)容聚焦。首先,簡歷要為具體崗位量身定制,根據(jù)職位要求調(diào)整內(nèi)容,突出匹配技能與經(jīng)驗(yàn);其次,結(jié)構(gòu)需邏輯清晰,包含聯(lián)系方式、個(gè)人簡介、經(jīng)歷等模塊,用標(biāo)題和加粗區(qū)分,避免大段文字;第三,經(jīng)歷描述要用事實(shí)和數(shù)據(jù)說話,采用動(dòng)詞開頭 數(shù)字量化 成果導(dǎo)向的方式,展現(xiàn)實(shí)際價(jià)值;最后,注意排版細(xì)節(jié),統(tǒng)一字體、間距,使用PDF格式,文件名規(guī)范命名,提升專業(yè)度。反復(fù)修改或請(qǐng)他人檢查,有助于提升簡歷質(zhì)量。

人工智能的核心是算法,尤其是能從數(shù)據(jù)中學(xué)習(xí)規(guī)律的模型,如深度學(xué)習(xí)。它通過大量數(shù)據(jù)訓(xùn)練系統(tǒng),使其能對(duì)新情況作出判斷,如人臉識(shí)別和聊天機(jī)器人。AI并非真正智能,而是模仿人類行為的統(tǒng)計(jì)方法。常見應(yīng)用包括語音識(shí)別(如Siri)、圖像識(shí)別(如支付寶刷臉支付)、推薦系統(tǒng)(如抖音、淘寶推薦)和自動(dòng)駕駛。AI的能力有邊界,它只能在訓(xùn)練數(shù)據(jù)范圍內(nèi)工作,沒有真正的意識(shí),且依賴大量計(jì)算資源??创鼳I應(yīng)理性,它是高效工具但非完美,可借助其提升效率,但也需警惕其局限性。

將PDF轉(zhuǎn)為Word的關(guān)鍵在于選對(duì)工具并注意格式保留。①使用AdobeAcrobat可直接導(dǎo)出為.docx,適合文本型PDF且排版不易亂,操作步驟包括打開文件、點(diǎn)擊“導(dǎo)出PDF”、選擇格式并下載檢查;②在線工具如Smallpdf、iLovePDF適合日常簡單轉(zhuǎn)換,但需注意隱私風(fēng)險(xiǎn)及格式可能錯(cuò)亂的問題;③新版Word支持直接導(dǎo)入PDF,適合僅需小幅編輯的情況,操作為插入文件并由Word自動(dòng)識(shí)別內(nèi)容;④掃描件需先用OCR工具識(shí)別文字,同時(shí)注意字體變化與分欄表格錯(cuò)位等細(xì)節(jié)問題,轉(zhuǎn)換后建議手動(dòng)調(diào)整以確保

YourIPaddressisessentialforinternetconnectivityandnetworkmanagement.TocheckyourpublicIPaddress,search“WhatismyIP?”onGoogle,useasmartphonebrowser,orvisitdedicatedwebsiteslikewhatismyipaddress.com.ForyourlocalIPaddress,followthesesteps:1)OnWindows,open

截圖方法因設(shè)備不同而異,常見操作如下:1.Windows:PrtScn截全屏,Alt PrtScn截當(dāng)前窗口,Win Shift S自由選區(qū)截圖,Win PrtScn自動(dòng)保存;2.Mac:Shift Cmd 3全屏截圖,Shift Cmd 4選區(qū)或點(diǎn)擊窗口截圖;3.iPhone:有Home鍵機(jī)型按電源 Home鍵,全面屏機(jī)型按電源 音量加鍵;4.安卓:一般為電源 音量減鍵,部分品牌支持手勢(shì)截圖;5.特殊需求可用滾動(dòng)截圖、錄屏功能或第三方工具如Snagit、Lightshot。掌握常用快捷鍵即可熟

想查看電腦上的顯卡驅(qū)動(dòng)版本,可通過以下方法實(shí)現(xiàn):1.使用設(shè)備管理器查看:Win X打開設(shè)備管理器,展開顯示適配器,右鍵顯卡選擇屬性,在驅(qū)動(dòng)程序標(biāo)簽頁查看版本和日期;2.通過DirectX診斷工具查看:Win R輸入dxdiag,在顯示標(biāo)簽頁中查看驅(qū)動(dòng)版本及相關(guān)圖形信息;3.使用顯卡廠商的官方軟件查詢:如NVIDIA的GeForceExperience、AMD的RadeonSoftware或Intel的Driver&SupportAssistant,主界面會(huì)顯示當(dāng)前驅(qū)動(dòng)狀態(tài)并支持更新;4.

搭建網(wǎng)站的關(guān)鍵在于選對(duì)工具并遵循清晰流程。1.首先明確網(wǎng)站目標(biāo)和類型,如博客、官網(wǎng)、電商等,并選擇適配工具,如WordPress、Shopify或Wix。2.注冊(cè)域名(推薦.com)并選擇托管平臺(tái),如主機(jī)托管、Vercel或Netlify。3.設(shè)計(jì)頁面結(jié)構(gòu),包括首頁、關(guān)于我們、產(chǎn)品頁等,確保布局清晰易用。4.上線后持續(xù)優(yōu)化內(nèi)容、檢查鏈接、適配移動(dòng)端,并通過SEO提升可見性。按步驟執(zhí)行,幾天內(nèi)即可完成建站。