91aaa在线国内观看,亚洲AV午夜福利精品一区二区,久久偷拍人视频,久久播这里有免费视播

<strong id="fvuar"></strong>

  • <sub id="fvuar"><dl id="fvuar"><em id="fvuar"></em></dl></sub>

    1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

      手機(jī)站
      千鋒教育

      千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

      千鋒教育

      掃一掃進(jìn)入千鋒手機(jī)站

      領(lǐng)取全套視頻
      千鋒教育

      關(guān)注千鋒學(xué)習(xí)站小程序
      隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

      當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > Python 模塊之輸入不可見(jiàn)的密碼

      Python 模塊之輸入不可見(jiàn)的密碼

      來(lái)源:千鋒教育
      發(fā)布人:xqq
      時(shí)間: 2023-11-07 04:30:20 1699302620

      密碼對(duì)程序員來(lái)說(shuō)尤其重要。你不應(yīng)該在不加密的情況下存儲(chǔ)它們,而且你也不應(yīng)該在用戶輸入密碼的時(shí)候顯示出輸入的內(nèi)容。當(dāng)我決定要提高我的筆記本電腦的安全性時(shí),這對(duì)我來(lái)說(shuō)變得特別重要。我對(duì)我的家目錄進(jìn)行了加密,但當(dāng)我登錄后,任何以純文本形式存儲(chǔ)在配置文件中的密碼都有可能暴露在偷窺者面前。

      具體來(lái)說(shuō),我使用一個(gè)名為Mutt的應(yīng)用作為我的電子郵件客戶端。它可以讓我在我的Linux終端中閱讀和撰寫電子郵件,但通常它希望在其配置文件中有一個(gè)密碼。我限制了我的Mutt配置文件的權(quán)限,以便只有我可以看到它,我是我的筆記本電腦的唯一用戶,所以我并不真的擔(dān)心經(jīng)過(guò)認(rèn)證的用戶會(huì)無(wú)意中看到我的配置文件。相反,我想保護(hù)自己,無(wú)論是為了吹噓還是為了版本控制,不至于心不在焉地把我的配置發(fā)布到網(wǎng)上,把我的密碼暴露了。此外,雖然我不希望我的系統(tǒng)上有不受歡迎的客人,但我確實(shí)想確保入侵者不能通過(guò)對(duì)我的配置上運(yùn)行cat就獲得我的密碼。

      pythonGnuPG

      Python模塊python-gnupg是gpg應(yīng)用的一個(gè)Python封裝。該模塊的名字是python-gnupg,你不要把它和一個(gè)叫做gnupg的模塊混淆。

      GnuPG(GPG)是Linux的默認(rèn)加密系統(tǒng),我從2009年左右開始使用它。我對(duì)它很熟悉,對(duì)它的安全性有很高的信任。

      我決定將我的密碼輸入Mutt的最好方法是將我的密碼存儲(chǔ)在一個(gè)加密的GPG文件中,創(chuàng)建一個(gè)提示我的GPG密碼來(lái)解鎖這個(gè)加密文件,然后將密碼交給Mutt(實(shí)際上是交給offlineimap命令,我用它來(lái)同步我的筆記本和電子郵件服務(wù)器)。

      用Python獲取用戶輸入是非常容易的。對(duì)input進(jìn)行調(diào)用,無(wú)論用戶輸入什么,都會(huì)被存儲(chǔ)為一個(gè)變量:

      print("Enterpassword:")

      myinput=input()

      print("Youentered:",myinput)

      我的問(wèn)題是,當(dāng)我根據(jù)密碼提示在終端上輸入密碼時(shí),我所輸入的所有內(nèi)容對(duì)任何從我肩膀上看過(guò)去或滾動(dòng)我的終端歷史的人來(lái)說(shuō)都是可見(jiàn)的:

      $./test.py

      Enterpassword:my-Complex-Passphrase

      用getpass輸入不可見(jiàn)密碼

      正如通常的情況一樣,有一個(gè)Python模塊已經(jīng)解決了我的問(wèn)題。這個(gè)模塊是getpass4,從用戶的角度來(lái)看,它的行為和input完全一樣,只是不顯示用戶輸入的內(nèi)容。

      你可以用pip安裝這兩個(gè)模塊:

      $python-mpipinstall--userpython-gnupggetpass4

      下面是我的Python腳本,用于創(chuàng)建密碼提示:

      #!/usr/bin/envpython

      #bySethKenlon

      #GPLv3

      #installdeps:

      #python3-mpipinstall--userpython-gnupggetpass4

      importgnupg

      importgetpass

      frompathlibimportPath

      defget_api_pass():

      homedir=str(Path.home())

      gpg=gnupg.GPG(gnupghome=os.path.join(homedir,".gnupg"),use_agent=True)

      passwd=getpass.getpass(prompt="EnteryourGnuPGpassword:",stream=None)

      withopen(os.path.join(homedir,'.mutt','pass.gpg'),'rb')asf:

      apipass=(gpg.decrypt_file(f,passphrase=passwd))

      f.close()

      returnstr(apipass)

      if__name__=="__main__":

      apipass=get_api_pass()

      print(apipass)

      如果你想試試,把文件保存為password_prompt.py。如果你使用offlineimap并想在你自己的密碼輸入中使用這個(gè)方案,那么把它保存到某個(gè)你可以在.offlineimaprc文件中指向offlineimap的位置(我使用~/.mutt/password_prompt.py)。

      測(cè)試密碼提示

      要查看腳本的運(yùn)行情況,你首先必須創(chuàng)建一個(gè)加密文件(我假設(shè)你已經(jīng)設(shè)置了GPG):

      $echo"helloworld">pass

      $gpg--encryptpass

      $mvpass.gpg~/.mutt/pass.gpg

      $rmpass

      現(xiàn)在運(yùn)行Python腳本:

      $python~/.mutt/password_prompt.py

      EnteryourGPGpassword:

      helloworld

      當(dāng)你輸入時(shí)沒(méi)有任何顯示,但只要你正確輸入GPG口令,你就會(huì)看到該測(cè)試信息。

      將密碼提示符與offlineimap整合起來(lái)

      我需要將我的新提示與offlineimap命令結(jié)合起來(lái)。我為這個(gè)腳本選擇了Python,因?yàn)槲抑纎fflineimap可以對(duì)Python程序進(jìn)行調(diào)用。如果你是一個(gè)offlineimap用戶,你會(huì)明白唯一需要的“整合”是在你的.offlineimaprc文件中改變兩行。

      首先,添加一行引用Python文件的內(nèi)容:

      pythonfile=~/.mutt/password_prompt.py

      然后將.offlineimaprc中的remotepasseval行改為調(diào)用password_prompt.py中的get_api_pass()函數(shù):

      remotepasseval=get_api_pass()

      配置文件中不再有密碼!

      安全問(wèn)題

      在你的個(gè)人電腦上考慮安全問(wèn)題有時(shí)會(huì)讓人覺(jué)得很偏執(zhí)。你的SSH配置是否真的需要限制為600?隱藏在名為.mutt的無(wú)關(guān)緊要的電子郵件密碼真的重要嗎?也許不重要。

      然而,知道我沒(méi)有把敏感數(shù)據(jù)悄悄地藏在我的配置文件里,使我更容易把文件提交到公共Git倉(cāng)庫(kù),把片段復(fù)制和粘貼到支持論壇,并以真實(shí)好用的配置文件的形式分享我的知識(shí)。僅就這一點(diǎn)而言,安全性的提高使我的生活更加輕松。而且有這么多好的Python模塊可以提供幫助,這很容易實(shí)現(xiàn)。

      以上內(nèi)容為大家介紹了Python模塊之輸入不可見(jiàn)的密碼,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.jsszjs.cn/

      聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
      10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
      請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
      免費(fèi)領(lǐng)取
      今日已有369人領(lǐng)取成功
      劉同學(xué) 138****2860 剛剛成功領(lǐng)取
      王同學(xué) 131****2015 剛剛成功領(lǐng)取
      張同學(xué) 133****4652 剛剛成功領(lǐng)取
      李同學(xué) 135****8607 剛剛成功領(lǐng)取
      楊同學(xué) 132****5667 剛剛成功領(lǐng)取
      岳同學(xué) 134****6652 剛剛成功領(lǐng)取
      梁同學(xué) 157****2950 剛剛成功領(lǐng)取
      劉同學(xué) 189****1015 剛剛成功領(lǐng)取
      張同學(xué) 155****4678 剛剛成功領(lǐng)取
      鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
      董同學(xué) 138****2867 剛剛成功領(lǐng)取
      周同學(xué) 136****3602 剛剛成功領(lǐng)取
      相關(guān)推薦HOT
      Python爬蟲原理

      簡(jiǎn)單來(lái)說(shuō)互聯(lián)網(wǎng)是由一個(gè)個(gè)站點(diǎn)和網(wǎng)絡(luò)設(shè)備組成的大網(wǎng),我們通過(guò)瀏覽器訪問(wèn)站點(diǎn),站點(diǎn)把HTML、JS、CSS代碼返回給瀏覽器,這些代碼經(jīng)過(guò)瀏覽器解析...詳情>>

      2023-11-07 07:33:56
      使用Cython為Python編寫更快的C擴(kuò)展

      使用Python很有趣,但有時(shí),用它編寫的程序可能很慢。所有的運(yùn)行時(shí)動(dòng)態(tài)調(diào)度會(huì)帶來(lái)很大的代價(jià):有時(shí)它比用C或Rust等系統(tǒng)語(yǔ)言編寫的等效代碼慢10...詳情>>

      2023-11-07 07:23:08
      Python字符串連接

      字符串是Python中常用的數(shù)據(jù)類型,在開發(fā)過(guò)程中可以對(duì)字符創(chuàng)進(jìn)行截取并與其他字符創(chuàng)進(jìn)行連接。下面小編整理了5種方法完成Python字符創(chuàng)的連接!加...詳情>>

      2023-11-07 06:47:08
      數(shù)據(jù)科學(xué)中必須了解的Python核心庫(kù)

      python有三個(gè)核心數(shù)據(jù)科學(xué)庫(kù),在此基礎(chǔ)上還創(chuàng)建了許多其他的庫(kù)。這三個(gè)核心數(shù)據(jù)科學(xué)庫(kù)分別為:NumpyScipyMatplotlib簡(jiǎn)單起見(jiàn),可以把Numpy視為...詳情>>

      2023-11-07 06:39:56
      如何讓Python代碼更易維護(hù)

      檢查你的代碼的質(zhì)量,通過(guò)這些外部庫(kù)使其更易維護(hù)。可讀性很重要。—Python之禪TheZenofPython,TimPeters隨著軟件項(xiàng)目進(jìn)入“維護(hù)模式”,對(duì)可...詳情>>

      2023-11-07 06:14:44