国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

使用這個 Python 模塊輸入不可見的密碼

開發 后端
密碼對程序員來說尤其重要。你不應該在不加密的情況下存儲它們,而且你也不應該在用戶輸入密碼的時候顯示出輸入的內容。當我決定要提高我的筆記本電腦的安全性時,這對我來說變得特別重要。我對我的家目錄進行了加密,但當我登錄后,任何以純文本形式存儲在配置文件中的密碼都有可能暴露在偷窺者面前。
  • 用 GPG 和 Python 的 getpass 模塊給你的密碼多一層安全保障。

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

[[411235]]

具體來說,我使用一個名為 Mutt 的應用作為我的電子郵件客戶端。它可以讓我在我的 Linux 終端中閱讀和撰寫電子郵件,但通常它希望在其配置文件中有一個密碼。我限制了我的 Mutt 配置文件的權限,以便只有我可以看到它,我是我的筆記本電腦的唯一用戶,所以我并不真的擔心經過認證的用戶會無意中看到我的配置文件。相反,我想保護自己,無論是為了吹噓還是為了版本控制,不至于心不在焉地把我的配置發布到網上,把我的密碼暴露了。此外,雖然我不希望我的系統上有不受歡迎的客人,但我確實想確保入侵者不能通過對我的配置上運行 cat 就獲得我的密碼。

Python GnuPG

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

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

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

用 Python 獲取用戶輸入 是非常容易的。對 input 進行調用,無論用戶輸入什么,都會被存儲為一個變量:

  1. print("Enter password: "
  2. myinput = input() 
  3. print("You entered: ", myinput) 

我的問題是,當我根據密碼提示在終端上輸入密碼時,我所輸入的所有內容對任何從我肩膀上看過去或滾動我的終端歷史的人來說都是可見的:

  1. $ ./test.py 
  2. Enter password: my-Complex-Passphrase 

用 getpass 輸入不可見密碼

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

你可以用 pip 安裝這兩個模塊:

  1. $ python -m pip install --user python-gnupg getpass4 

下面是我的 Python 腳本,用于創建密碼提示:

  1. #!/usr/bin/env python 
  2. by Seth Kenlon 
  3. # GPLv3 
  4. # install deps: 
  5. # python3 -m pip install --user python-gnupg getpass4 
  6. import gnupg 
  7. import getpass 
  8. from pathlib import Path 
  9. def get_api_pass(): 
  10.   homedir = str(Path.home()) 
  11.   gpg = gnupg.GPG(gnupghome=os.path.join(homedir,".gnupg"), use_agent=True
  12.   passwd = getpass.getpass(prompt="Enter your GnuPG password: ", stream=None) 
  13.   with open(os.path.join(homedir,'.mutt','pass.gpg'), 'rb'as f: 
  14.     apipass = (gpg.decrypt_file(f, passphrase=passwd)) 
  15.   f.close() 
  16.   return str(apipass) 
  17.   
  18. if __name__ == "__main__"
  19.   apipass = get_api_pass() 
  20.   print(apipass) 

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

測試密碼提示

要查看腳本的運行情況,你首先必須創建一個加密文件(我假設你已經設置了 GPG):

  1. $ echo "hello world" > pass 
  2. $ gpg --encrypt pass 
  3. $ mv pass.gpg ~/.mutt/pass.gpg 
  4. $ rm pass 

現在運行 Python 腳本:

  1. $ python ~/.mutt/password_prompt.py 
  2. Enter your GPG password
  3. hello world 

當你輸入時沒有任何顯示,但只要你正確輸入 GPG 口令,你就會看到該測試信息。

將密碼提示符與 offlineimap 整合起來

我需要將我的新提示與 offlineimap 命令結合起來。我為這個腳本選擇了 Python,因為我知道 offlineimap 可以對 Python 程序進行調用。如果你是一個 offlineimap 用戶,你會明白唯一需要的“整合”是在你的 .offlineimaprc 文件中改變兩行。

首先,添加一行引用 Python 文件的內容:

  1. pythonfile = ~/.mutt/password_prompt.py 

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

  1. remotepasseval = get_api_pass() 

配置文件中不再有密碼!

安全問題

在你的個人電腦上考慮安全問題有時會讓人覺得很偏執。你的 SSH 配置是否真的需要限制為 600?隱藏在名為 .mutt 的無關緊要的電子郵件密碼真的重要嗎?也許不重要。

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

責任編輯:未麗燕 來源: Linux中國
相關推薦

2015-02-10 11:15:46

Android 5.1Google

2015-02-05 09:29:25

Android 5.1

2021-03-08 08:18:53

onStar Activity 界面

2021-01-29 09:58:55

MySQL數據庫

2010-07-08 13:38:42

SQL Server不

2020-08-26 09:58:56

AI 數據人工智能

2013-10-21 15:20:27

Linux命令cat 命令

2010-03-22 15:38:46

Python常用模塊

2010-02-01 09:54:43

2011-08-30 15:11:21

密碼SSH服務器

2011-04-01 14:43:14

SQL Server不可見字符

2011-04-21 13:01:15

visibilitydisplay

2022-07-16 10:02:54

gedit文本編輯器Linux

2022-04-25 11:44:58

數據隱私安全

2021-05-08 19:33:51

移除字符零寬

2021-04-09 06:15:54

開源工具Python編程語言

2013-05-06 09:27:37

Fedora 19

2021-07-22 23:04:41

區塊鏈數據技術

2025-09-17 07:15:00

GenAI數據隱私AI工具

2023-06-20 19:37:19

Process模塊Nodejs
點贊
收藏

51CTO技術棧公眾號

欧美一级淫片播放口| jizz在线免费观看| 色综合久久88色综合天天6| 欧洲一级精品| 日本黄网免费一区二区精品| 中文字幕在线观看不卡视频| 国产69精品久久久久按摩| 亚洲精品免费在线视频| 一区二区三区四区不卡在线| 久久精品国产亚洲blacked| av片在线免费| 国产亚洲免费的视频看| 精品一区二区三区视频在线播放| 欧美 日韩 国产 在线观看| 精品三级国产| 免费不卡欧美自拍视频| 奇米亚洲午夜久久精品| 天天干在线影院| 亚洲第一网中文字幕| 欧美日韩中字| a在线免费观看| 三上悠亚在线资源| 亚洲精品偷拍视频| 99re视频在线播放| 18久久久久久| 北条麻妃在线一区二区| 日韩一区二区在线观看| 中文字幕日韩av资源站| 国产成人午夜99999| 久久动漫亚洲| 国产精品久久| 香蕉久久网站| 在线成人动漫av| 日本一区二区三区中文字幕| bl在线肉h视频大尺度| 91社区在线| 能在线看的av| 人妻无码久久一区二区三区免费| 成人免费看黄网站| 国产精品美女免费视频| 欧美国产日本高清在线| 亚洲电影在线看| 欧美日本在线看| 一区二区三区精密机械公司| 99久久精品99国产精品| 国产一区91精品张津瑜| 麻豆91在线播放免费| 中文国产一区| 99视频精品全部免费在线视频| av日韩精品| 黄色成人在线观看网站| 永久免费毛片在线播放| 成人免费观看在线观看| www视频在线观看| 电影在线观看一区| sm久久捆绑调教精品一区| 国产羞羞视频在线播放| 欧美视频免费一区二区三区| 国外成人在线视频| 亚洲综合视频在线观看| 久久久一区二区三区捆绑**| 99视频在线精品| 国产乱子精品一区二区在线观看| 黄页网站在线播放| 裸体免费网站| 一区二区三区不卡在线视频| 亚洲中文字幕无码一区二区三区| 国产+人+亚洲| 亚洲最色的网站| 日本aⅴ亚洲精品中文乱码| 日本精品影院| 超碰porn在线| 亚洲欧美日韩一级| 国产精品免费一区二区三区四区| 亚洲国产欧美一区二区丝袜黑人| 久久久www免费人成精品| 香蕉视频官网在线观看日本一区二区| 手机在线免费av| 在线天堂日本| 可以免费看污视频的网站| 国产伦视频一区二区三区| 日韩欧美你懂的| 国产亚洲欧美色| 亚洲精品男同| 国产麻豆精品久久| 丰满少妇一区| 精品国模一区二区三区| 一区二区三区不卡在线视频| 无遮挡亚洲一区| 国产欧美日韩精品专区| 欧美黑人xxxx| 久久久国产91| 日韩中文有码在线视频| 欧美另类一区二区三区| 亚洲一区二三区| 91在线小视频| 久草热8精品视频在线观看| 奇米四色…亚洲| 欧美3p视频在线观看| 日本怡春院一区二区| 哺乳一区二区三区中文视频 | 红杏一区二区三区| 久久精品视频免费看| 免费xxxxx网站中文字幕| 婷婷亚洲婷婷综合色香五月| 成人免费视频网址| 国产精品444| 欧美激情久久久久久| 国产毛片久久久久久国产毛片| 精品人伦一区二区三区| 国产精品久久午夜| 激情图片小说一区| 91在线播放网址| av日韩在线网站| 国产99久久精品| 国产一区二区导航在线播放| 麻豆久久久久久| 精品一区在线看| 国产成人精品一区二| 国产一区二区伦理| 午夜在线精品偷拍| 香蕉久久网站| 一精品久久久| 亚洲深深色噜噜狠狠爱网站| 国内外成人在线视频| 日韩在线高清视频| 欧美伦理影视网| 亚洲国产婷婷| 欧美国产欧美综合| 国产国产精品人在线视| 亚洲人av在线| 中文国产字幕在线观看| 欧美天堂一区二区| 韩国免费在线视频| julia京香一区二区三区| 在线观看成人影院| 熟妇人妻va精品中文字幕| 青青青在线观看视频| 日韩最新中文字幕| 在线观看成人免费| 日本不卡一区二区三区视频| 2018中文字幕第一页| 91av资源网| 最新天堂资源在线资源| 成人精品一区二区三区校园激情| 午夜免费性福利| 一区二区三区伦理| 日韩中文在线| 禁久久精品乱码| 国产精品高潮呻吟久久| 97视频在线播放| 国产伦子伦对白在线播放观看| 亚洲精品国产无套在线观| 成人午夜在线影院| 国产精品高清乱码在线观看| 91久色porny| 不卡伊人av在线播放| 一道精品一区二区三区| caoporn-草棚在线视频最| 99热精品久久| 在线影院国内精品| 国产欧美一区二区三区久久人妖 | 天堂va蜜桃一区二区三区| 精品va天堂亚洲国产| 欧美激情精品久久久久久变态 | 91免费视频网站| 艳色歌舞团一区二区三区| 中文字幕在线看| 成人影视在线播放| 日本在线一区二区三区| 精品午夜久久福利影院| 日韩视频在线免费观看| 国产玉足脚交久久欧美| 99久久精品免费看国产小宝寻花 | 97高清视频| 欧美综合久久| 九九热精品视频| 日韩中文字幕一区二区三区| 黑人一区二区三区四区五区| 99国产欧美另类久久久精品| 欧美网站一区二区| 欧美一区亚洲一区| 青青青在线视频播放| 日韩色淫视频| 麻豆视频观看网址久久| 国产999在线| 激情五月开心婷婷| 日本动漫同人动漫在线观看| 另类亚洲自拍| 一区二区不卡在线播放 | www在线观看免费| 黄色小网站在线观看| 日本91福利区| 欧美三级乱人伦电影| 亚洲激情图片| 亚洲黄色免费看| 中文字幕亚洲综合久久菠萝蜜| 亚洲人成网站在线观看播放| av一级亚洲| 色哟哟网站入口亚洲精品|