国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python中的安全密碼處理,非常重要!知道這些黑客也奈何不了你!

這篇具有很好參考價(jià)值的文章主要介紹了Python中的安全密碼處理,非常重要!知道這些黑客也奈何不了你!。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

現(xiàn)在我們已經(jīng)向用戶詢問(wèn)了密碼,或者為他們生成了密碼,我們?cè)撊绾翁幚硭??我們可能希望將其存?chǔ)在數(shù)據(jù)庫(kù)中的某個(gè)地方,但您可能(希望)知道,您不應(yīng)該以明文格式存儲(chǔ)密碼。那是為什么?

那么,密碼不應(yīng)該以可恢復(fù)的格式存儲(chǔ),無(wú)論是純文本還是加密的。它們應(yīng)該使用加密強(qiáng)的單向函數(shù)進(jìn)行散列。這樣,如果有人掌握了數(shù)據(jù)庫(kù)中的密碼,他們將很難恢復(fù)任何實(shí)際的密碼,因?yàn)閺纳⒘兄谢謴?fù)任何密碼的唯一方法是強(qiáng)行–也就是說(shuō)–使用可能的明文密碼,用相同的算法對(duì)它們進(jìn)行散列,并將結(jié)果與數(shù)據(jù)庫(kù)中的條目進(jìn)行比較。

為了讓蠻力變得更難,另外

食鹽

應(yīng)該用。SALT是存儲(chǔ)在散列密碼旁邊的隨機(jī)字符串。在散列之前,它會(huì)被附加到密碼中,這使得它更加隨機(jī),因此很難猜測(cè)(使用彩虹桌 ).

然而,由于現(xiàn)代硬件每秒可嘗試數(shù)十億次散列,因此,僅憑密碼難以猜測(cè)是不夠的。

慢的

散列函數(shù)用于密碼散列,使得攻擊者強(qiáng)行使用密碼的效率要低得多。

(注:以上所述大大簡(jiǎn)化了使用這些散列函數(shù)的邏輯和原因。有關(guān)更多深思熟慮的解釋,請(qǐng)參見(jiàn)文章 .)

有相當(dāng)多的庫(kù)和單獨(dú)的散列算法,但上述要求大大縮小了我們的選擇范圍。在Python中進(jìn)行散列的解決方案應(yīng)該是passlib因?yàn)樗峁┝苏_的算法,以及高級(jí)接口,即使是那些對(duì)密碼學(xué)不太精通的人也可以使用。

pip install passlib

from passlib.hash import bcrypt

from getpass import getpass

print(bcrypt.setting_kwds)

(‘salt’, ‘rounds’, ‘ident’, ‘truncate_error’)

print(bcrypt.default_rounds)

12

hasher = bcrypt.using(rounds=13) # Make it slower

password = getpass()

hashed_password = hasher.hash(password)

print(hashed_password)

$2b 13 13 13H9.qdcodBFCYOWDVMrjx/uT.fbKzYloMYD7Hj2ItDmEOnX5lw.BX.

_// _/___________/

Alg Rounds Salt (22 char) Hash (31 char)

print(hasher.verify(password, hashed_password))

True

print(hasher.verify(“not-the-password”, hashed_password))

False

在我們使用的片段中bcrypt作為我們選擇的算法,因?yàn)樗亲盍餍泻蜏y(cè)試最充分的哈希算法之一。首先,我們檢查它的可能設(shè)置并檢查算法使用的默認(rèn)輪數(shù)。然后修改

哈希爾

使用更多的回合(成本因素)使哈希速度變慢,因此哈希更難破解。這個(gè)數(shù)字應(yīng)該是最大的,不會(huì)給您的用戶造成不可容忍的延遲(~300 ms)。passlib定期更新默認(rèn)循環(huán)值,因此不一定需要更改此值。

在HASHER準(zhǔn)備就緒后,我們提示用戶輸入密碼并將其散列。此時(shí),我們可以將其存儲(chǔ)在數(shù)據(jù)庫(kù)中,為了演示起見(jiàn),我們繼續(xù)使用原始明文密碼驗(yàn)證它。

從上面的代碼中,我們可以看到passlib歸結(jié)為hash和modify我們算法選擇的方法。然而,如果你想對(duì)計(jì)劃、回合等有更多的控制權(quán),那么你可以使用CryptContext班級(jí):

from passlib.context import CryptContext

ctx = CryptContext(schemes=[“bcrypt”, “argon2”, “scrypt”],

default=“bcrypt”,

bcrypt__rounds=14)

password = getpass()

hashed_password = ctx.hash(password)

print(hashed_password)

$2b 14 14 14pFTXqnHjn91C8k8ehbuM.uSJM.H5S0l7vkxE8NxgAiS2LiMWMziAe

print(ctx.verify(password, hashed_password))

print(ctx.verify(“not-the-password”, hashed_password))

此上下文對(duì)象允許我們處理多個(gè)方案、設(shè)置默認(rèn)值或配置成本因素。如果您的應(yīng)用程序身份驗(yàn)證很簡(jiǎn)單,那么這可能是不必要的,但是如果您需要使用多個(gè)散列算法、不推薦它們、重新哈希哈?;蝾愃频母呒?jí)任務(wù)的能力,那么您可能需要查看全文。CryptContext整合補(bǔ)習(xí) .

另一個(gè)你想用的理由CryptContext如果您需要處理操作系統(tǒng)密碼,如/etc/shadow。為此,可以使用passlib.hosts,有關(guān)詳細(xì)信息,請(qǐng)參閱示例。這里 .

為了完整起見(jiàn),我還列出了其他幾個(gè)可用庫(kù),包括它們的(不同的)用例:

  • Bcrypt是我們上面使用的庫(kù)和算法。這是由以下人員使用的相同代碼:passlib沒(méi)有真正的理由使用這個(gè)低級(jí)別的庫(kù)。

  • 地窖是一個(gè)Python標(biāo)準(zhǔn)庫(kù)模塊,它提供了能用于密碼散列。然而,所提供的算法依賴于您的系統(tǒng),而文檔中列出的算法不如上面所示的強(qiáng)。

  • Hashlib是另一個(gè)內(nèi)置模塊。然而,這一個(gè)包含了強(qiáng)大的哈希功能,適合密碼哈希。這個(gè)庫(kù)的接口使函數(shù)更加可定制,因此需要更多的知識(shí)才能正確地(安全地)使用。您絕對(duì)可以使用來(lái)自此模塊的函數(shù),例如hashlib.scrypt你的密碼。

  • HMAC,Python標(biāo)準(zhǔn)庫(kù)提供的最后一個(gè)散列模塊不適合密碼散列。HMAC用于驗(yàn)證消息的完整性和真實(shí)性,并且不具有密碼散列所需的屬性。

注意:新獲得的關(guān)于正確存儲(chǔ)密碼的方法的知識(shí),讓我們想象一下,您忘記了某些服務(wù)的密碼。你點(diǎn)擊

“忘記密碼了?”

在網(wǎng)站上,而不是恢復(fù)鏈接,他們給你的實(shí)際密碼。這意味著他們將您的密碼存儲(chǔ)在明文中,這也意味著您應(yīng)該逃離該服務(wù)(如果您在其他地方使用了相同的密碼,那么就更改它)。

安全儲(chǔ)存

====

在上一節(jié)中,我們假設(shè)目的是存儲(chǔ)其他用戶的憑據(jù),但是您自己用來(lái)登錄到遠(yuǎn)程系統(tǒng)的密碼呢?

將密碼保留在代碼中顯然是一個(gè)糟糕的選擇,因?yàn)樗且悦魑男问教峁┙o任何人看的,而且您也有可能意外地將密碼推到gitrepo上。更好的選擇是將其存儲(chǔ)在環(huán)境變量中。你可以創(chuàng)建.env文件,將其添加到.gitignore,將其填充到當(dāng)前項(xiàng)目所需的憑據(jù)中。然后你可以用dotenv將所有這些變量打包到應(yīng)用程序中,如下所示:

pip install python-dotenv

import os

from os.path import join, dirname

from dotenv import load_dotenv

dotenv_path = join(dirname(file), “.env”)

load_dotenv(dotenv_path)

API_KEY = os.environ.get(“API_KEY”, “default”)

print(API_KEY)

a3491fb2-000f-4d9f-943e-127cfe29c39c

這個(gè)片段首先構(gòu)建到.env文件使用os.path函數(shù),然后使用這些函數(shù)加載環(huán)境變量。load_dotenv()。如果你.env文件位于當(dāng)前目錄中,如上面的示例所示,那么您可以簡(jiǎn)化代碼,只需調(diào)用load_dotenv(find_dotenv())自動(dòng)找到環(huán)境文件。加載文件時(shí),剩下的就是使用os.environ.get .

或者,如果您不想用應(yīng)用程序變量和秘密污染您的環(huán)境,您可以像這樣直接加載它們:

from dotenv import dotenv_values

config = dotenv_values(“.env”)

print(config)

OrderedDict([(‘API_KEY’, ‘a(chǎn)3491fb2-000f-4d9f-943e-127cfe29c39c’)])

上面的解決方案很好,但我們可以做得更好。與其將密碼存儲(chǔ)在不受保護(hù)的文件中,我們還可以使用系統(tǒng)的

鍵環(huán)

,該應(yīng)用程序可以將安全憑據(jù)存儲(chǔ)在主目錄中的加密文件中。默認(rèn)情況下,該文件使用用戶帳戶登錄密碼進(jìn)行加密,因此在登錄時(shí)會(huì)自動(dòng)解鎖,因此不必?fù)?dān)心額外的密碼。

要在Python應(yīng)用程序中使用keyring憑據(jù),我們可以使用名為keyring :

pip install keyring

import keyring

import keyring.util.platform_ as keyring_platform

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過(guò),也去過(guò)華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)網(wǎng)絡(luò)安全工程師,想要提升技能,往往是自己摸索成長(zhǎng),但自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年網(wǎng)絡(luò)安全全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友。
python cryptcontext,2024年程序員學(xué)習(xí),python,安全,開(kāi)發(fā)語(yǔ)言
python cryptcontext,2024年程序員學(xué)習(xí),python,安全,開(kāi)發(fā)語(yǔ)言
python cryptcontext,2024年程序員學(xué)習(xí),python,安全,開(kāi)發(fā)語(yǔ)言
python cryptcontext,2024年程序員學(xué)習(xí),python,安全,開(kāi)發(fā)語(yǔ)言
python cryptcontext,2024年程序員學(xué)習(xí),python,安全,開(kāi)發(fā)語(yǔ)言
python cryptcontext,2024年程序員學(xué)習(xí),python,安全,開(kāi)發(fā)語(yǔ)言

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上網(wǎng)絡(luò)安全知識(shí)點(diǎn),真正體系化!

由于文件比較大,這里只是將部分目錄大綱截圖出來(lái),每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且后續(xù)會(huì)持續(xù)更新

如果你覺(jué)得這些內(nèi)容對(duì)你有幫助,可以添加VX:vip204888 (備注網(wǎng)絡(luò)安全獲?。?/strong>
python cryptcontext,2024年程序員學(xué)習(xí),python,安全,開(kāi)發(fā)語(yǔ)言

學(xué)習(xí)路線:

這個(gè)方向初期比較容易入門(mén)一些,掌握一些基本技術(shù),拿起各種現(xiàn)成的工具就可以開(kāi)黑了。不過(guò),要想從腳本小子變成黑客大神,這個(gè)方向越往后,需要學(xué)習(xí)和掌握的東西就會(huì)越來(lái)越多以下是網(wǎng)絡(luò)滲透需要學(xué)習(xí)的內(nèi)容:
python cryptcontext,2024年程序員學(xué)習(xí),python,安全,開(kāi)發(fā)語(yǔ)言

一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)。不論你是正從事IT行業(yè)的老鳥(niǎo)或是對(duì)IT行業(yè)感興趣的新人,都?xì)g迎掃碼加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場(chǎng)吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長(zhǎng)!
python cryptcontext,2024年程序員學(xué)習(xí),python,安全,開(kāi)發(fā)語(yǔ)言

從腳本小子變成黑客大神,這個(gè)方向越往后,需要學(xué)習(xí)和掌握的東西就會(huì)越來(lái)越多以下是網(wǎng)絡(luò)滲透需要學(xué)習(xí)的內(nèi)容:
python cryptcontext,2024年程序員學(xué)習(xí),python,安全,開(kāi)發(fā)語(yǔ)言

一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)。不論你是正從事IT行業(yè)的老鳥(niǎo)或是對(duì)IT行業(yè)感興趣的新人,都?xì)g迎掃碼加入我們的的圈子(技術(shù)交流、學(xué)習(xí)資源、職場(chǎng)吐槽、大廠內(nèi)推、面試輔導(dǎo)),讓我們一起學(xué)習(xí)成長(zhǎng)!
[外鏈圖片轉(zhuǎn)存中…(img-ZNGkmKoX-1713018979790)]文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-857023.html

到了這里,關(guān)于Python中的安全密碼處理,非常重要!知道這些黑客也奈何不了你!的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)預(yù)處理在數(shù)據(jù)挖掘中的重要性

    數(shù)據(jù)挖掘作為從大量數(shù)據(jù)中提取有用信息和知識(shí)的過(guò)程,其結(jié)果的準(zhǔn)確性和可靠性直接受到數(shù)據(jù)質(zhì)量的影響。因此,數(shù)據(jù)預(yù)處理在數(shù)據(jù)挖掘中扮演著至關(guān)重要的角色。讓我們探討數(shù)據(jù)質(zhì)量對(duì)數(shù)據(jù)挖掘結(jié)果的影響,并介紹常見(jiàn)的數(shù)據(jù)預(yù)處理方法以及它們?nèi)绾翁岣邤?shù)據(jù)挖掘的效果

    2024年03月20日
    瀏覽(33)
  • 安全加速SCDN在網(wǎng)站運(yùn)營(yíng)中的重要作用

    安全加速SCDN在網(wǎng)站運(yùn)營(yíng)中的重要作用

    SCDN(Secure Content Delivery Network)是一種安全加速技術(shù),對(duì)于網(wǎng)站運(yùn)營(yíng)起到非常重要的作用。它能夠提升用戶體驗(yàn),保護(hù)網(wǎng)站安全,提高網(wǎng)站的性能和可靠性。本文將詳細(xì)介紹SCDN在網(wǎng)站運(yùn)營(yíng)中的作用。 首先,SCDN可以幫助網(wǎng)站提供更快速的訪問(wèn)速度和更流暢的用戶體驗(yàn)。在傳統(tǒng)

    2024年03月16日
    瀏覽(27)
  • 網(wǎng)絡(luò)安全在醫(yī)療行業(yè)中的重要性

    網(wǎng)絡(luò)安全在醫(yī)療行業(yè)中的重要性

    不可否認(rèn),現(xiàn)代世界見(jiàn)證了技術(shù)和醫(yī)療行業(yè)的交織,塑造了我們?cè)\斷、治療和管理健康狀況的新方式。隨著電子健康記錄取代紙質(zhì)文件,遠(yuǎn)程醫(yī)療縮短了患者和醫(yī)療服務(wù)提供者之間的距離,數(shù)字化轉(zhuǎn)型既是福音,也是挑戰(zhàn)。最近的全球化進(jìn)一步加速了醫(yī)療保健領(lǐng)域的數(shù)字化發(fā)

    2024年02月11日
    瀏覽(24)
  • 【軟考:網(wǎng)工】協(xié)議篇(非常重要)

    【軟考:網(wǎng)工】協(xié)議篇(非常重要)

    還是來(lái)自summer老師的,B站可以搜“summer”課堂,看相關(guān)視頻哦~ 協(xié)議分類 (1)以太網(wǎng):一般用于局域網(wǎng) 以太網(wǎng)幀結(jié)構(gòu): (2)幀中繼:一種廣域網(wǎng)技術(shù) 例題:下列分組父換網(wǎng)絡(luò)中,米用的交換技術(shù)與其他3個(gè)不同的是( )網(wǎng)。 A.IP B.X.25 C.幀中繼 D.ATM (3)HDLC (1)ipv4 TTL經(jīng)過(guò)一

    2024年02月08日
    瀏覽(15)
  • 學(xué)習(xí)sql,你需要知道這些

    MySql Oracle PostgreSql MogoDB Redis DynamoDB Elaticsearch 事務(wù)就是由單獨(dú)單元的一個(gè)或多個(gè)sql語(yǔ)句組成,在這個(gè)單元中,每個(gè)sql語(yǔ)句都是相互依賴的。而整個(gè)單獨(dú)單元是作為一個(gè)不可分割的整體存在,類似于物理當(dāng)中的原子(一種不可分割的最小單位)。 往通俗的講就是,事務(wù)就是一個(gè)

    2024年02月07日
    瀏覽(52)
  • 護(hù)網(wǎng)行動(dòng) | AD360 在網(wǎng)絡(luò)安全中的重要作用

    護(hù)網(wǎng)行動(dòng) | AD360 在網(wǎng)絡(luò)安全中的重要作用

    隨著數(shù)字化時(shí)代的來(lái)臨,網(wǎng)絡(luò)已經(jīng)成為了人們生活和工作中不可或缺的一部分。然而,隨之而來(lái)的是網(wǎng)絡(luò)安全問(wèn)題日益突出。為了應(yīng)對(duì)這些安全威脅,護(hù)網(wǎng)行動(dòng)應(yīng)運(yùn)而生,其中AD360在保障網(wǎng)絡(luò)安全方面扮演著至關(guān)重要的角色。 AD360是一個(gè)集成的解決方案,能夠幫助企業(yè)高效地

    2024年02月13日
    瀏覽(17)
  • MD5在文件安全中的應(yīng)用與重要性

    MD5在文件安全中的應(yīng)用與重要性

    一、MD5簡(jiǎn)介 MD5(Message-Digest Algorithm 5)是一種廣泛應(yīng)用的密碼散列函數(shù),由美國(guó)密碼學(xué)家羅納德·李維斯特(Ronald Linn Rivest)于1992年提出。它主要用于對(duì)任意長(zhǎng)度的消息或文件進(jìn)行加密,生成一個(gè)128位的固定長(zhǎng)度的摘要(hash value),從而實(shí)現(xiàn)數(shù)據(jù)的完整性驗(yàn)證和身份認(rèn)證。

    2024年02月04日
    瀏覽(24)
  • Wi-Fi 安全在學(xué)校中的重要性

    Wi-Fi 安全在學(xué)校中的重要性

    Wi-Fi 是教育機(jī)構(gòu)的基礎(chǔ)設(shè)施,從在線家庭作業(yè)門(mén)戶到虛擬教師會(huì)議,應(yīng)有盡有。大多數(shù) K-12 管理員對(duì)自己的 Wi-Fi 網(wǎng)絡(luò)的安全性充滿信心,并認(rèn)為他們現(xiàn)有的網(wǎng)絡(luò)安全措施已經(jīng)足夠。 不幸的是,這種信心往往是錯(cuò)誤的。Wi-Fi 安全雖然經(jīng)常被忽視,但可能是學(xué)校網(wǎng)絡(luò)安全系統(tǒng)的

    2024年02月12日
    瀏覽(17)
  • 學(xué)node 之前你要知道這些

    學(xué)node 之前你要知道這些

    ?? 19年年底一個(gè)偶然的機(jī)會(huì)接到年會(huì)任務(wù),有微信掃碼登錄、投票、彈幕等功能,于是決定用node 來(lái)寫(xiě)幾個(gè)服務(wù),結(jié)果也比較順利。 ??當(dāng)時(shí)用看了下koa2的官方文檔,知道怎么連接數(shù)據(jù)庫(kù)、怎么映射表實(shí)體,怎么處理http,怎么處理異常等,就可以直接寫(xiě)起來(lái)了。從應(yīng)用層

    2024年02月03日
    瀏覽(19)
  • 關(guān)于數(shù)字孿生,這些大事件你知道嗎?

    數(shù)字孿生是指將物理實(shí)體通過(guò)數(shù)字化建模、仿真和可視化技術(shù)轉(zhuǎn)化為虛擬實(shí)體的過(guò)程,可以用于設(shè)計(jì)、制造、運(yùn)營(yíng)、維護(hù)等領(lǐng)域。 作為一個(gè)新興技術(shù),在這短暫的幾年內(nèi),關(guān)于數(shù)字孿生都有哪些大事件呢? 2017年,德國(guó)工業(yè)4.0戰(zhàn)略正式提出數(shù)字孿生的概念,將其作為推動(dòng)工業(yè)

    2024年02月01日
    瀏覽(22)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包