步驟1:了解現(xiàn)有技術(shù),項(xiàng)目和產(chǎn)品
我相信很多人仍然使用上面描述的技術(shù)來(lái)記住他們的密碼,即他們將它們存儲(chǔ)在筆記本或便利貼上。這有兩個(gè)原因是危險(xiǎn)的。顯然,如果有人偷了你的筆記本電腦,那么游戲結(jié)束了。 PasswordPump會(huì)對(duì)您的密碼進(jìn)行加密,并需要輸入主密碼才能訪問(wèn)所有其他密碼;所以如果有人偷了它,他們?nèi)匀粺o(wú)法獲取你的密碼。其次,人們并不總是選擇真的難以猜測(cè)的密碼,甚至是用字典攻擊來(lái)暴力破解。密碼泵的最佳功能之一是它允許您生成并記住31個(gè)字符密碼,這些密碼是ASCII字符,數(shù)字和符號(hào)的隨機(jī)混合。
我認(rèn)為與PasswordPump功能集最匹配的商業(yè)產(chǎn)品是Mooltipass Mini Offline Password Keeper;在撰寫(xiě)本文時(shí),運(yùn)費(fèi)前$ 79.00。 Mooltipass在某些重要方面有所不同,似乎是一個(gè)很好的,成熟的開(kāi)源產(chǎn)品,也是建立在ATMega32u4上的。我最近才意識(shí)到一個(gè)開(kāi)源密碼管理器Memtype,它聲稱是“一個(gè)優(yōu)雅的解決方案,可以將你的憑據(jù)存儲(chǔ)在各處”。它看起來(lái)真的很酷,其中最酷的一點(diǎn)是它建立在ATTiny上!最后,在這個(gè)網(wǎng)站上有另一個(gè)類似的項(xiàng)目,Arduino Pro Micro上的密碼管理器,這是一個(gè)很好的例子,甚至提供了一種通過(guò)PC上的程序編輯憑據(jù)的方法。但是,Mooltipass,Memtype或密碼管理員不是這個(gè)項(xiàng)目的靈感來(lái)源。這個(gè)項(xiàng)目的靈感來(lái)自Automated Password Typer。然而,憑據(jù)被硬編碼到Automated Password Typer中,并且無(wú)法添加新的,刪除舊的或編輯現(xiàn)有憑證(除了修改源代碼,重新編譯和重新刷新);和鎖定位未設(shè)置為保護(hù)憑據(jù)。我開(kāi)始擴(kuò)展該項(xiàng)目中提出的想法,之后有2000行代碼,使用PasswordPump登陸。
步驟2:獲取零件
數(shù)量 描述成本
- 1 Arduino Pro Micro $ 2.87
- 1 RGB LED 0.02
- 2電阻4.7k~0.03
- 3電阻220~0.04
- 1自定義PCB 1.10
- 1旋轉(zhuǎn)編碼器0.42
- 1旋鈕0.15
- 1 OLED 128x32 1.64
- 1瞬時(shí)按鈕0.01
- 2 25LC256外部EEprom 1.89
* 零件總成本:8.17美元
*請(qǐng)記住,您需要一根微型USB轉(zhuǎn)USB線和面包板
步驟3 :進(jìn)行硬件連接
此處提供了Fritzing圖。這些表也可以在這里找到,我可以更好地格式化它們,這可能會(huì)更有幫助。
Arduino Pro Micro (帶ATMega32u4微控制器)
數(shù)據(jù)表
Arduino Pro Micro 引腳編號(hào)。,名稱,Arduino,AVR, - 連接到/注釋
TX D1 PD3 - 未連接
RX D0 PD2-未連接
GND-未連接
GND-未連接
SDA D2 PD1 - SSD1306 SDA,4.7k上拉
SCL D3 PD0 - SSD1306 SCL,4.7k上拉
A6 D4 PD4 - 未連接
D5 PC6 - 未連接
A7 D6 PD7 - 用于25LC256的引腳1備用芯片選擇
D7 PE6 - 旋轉(zhuǎn)按鈕
A8 D8 PB4 - 旋轉(zhuǎn)銷2
A9 D9 PB5 - 旋轉(zhuǎn)銷1
A10 D10 PB6 - 針對(duì)25LC256的針1主芯片選擇
MOSI D16 PB2 - 引腳5主25LC256,備用25LC256
MISO D14 PB3 - 引腳2主25LC256,備用25LC256
SCLK D15 PB1 - 引腳6主25LC256,備用25LC256
A0 D18 PF7-未連接,必須浮動(dòng)用于隨機(jī)#發(fā)電機(jī)
A1 D19 PF6 - 紅色RGB引腳
A2 D20 PF5 - 綠色RGB引腳
A3 D21 PF4 - 藍(lán)色RGB引腳
Vcc(+ 3V) - 正軌
復(fù)位 - 復(fù)位按鈕
GND - 負(fù)極接地軌,GND RGB,GND SSD1306,GND編碼器按鈕,GND 2 25LC256芯片
RAW(USB + 5V) - 未連接
25LC256 (外部EEprom)測(cè)試部件:MICROCHIP - 25LC256-I/P - 256K SPI?總線串行EEPROM DIP8
數(shù)據(jù)表
1st 25LC256
Number。,Name,ConnectTo,Note
CS D10 PB6 - 引腳13 promicro芯片選擇輸入
SO D14 - 引腳15 promicro MISO - 串行數(shù)據(jù)輸出
WP VCC - 引腳21 promicro寫(xiě)保護(hù)
Vss GND - 引腳23 promicro接地
SI D16 - 引腳14 promicro MOSI - 串行數(shù)據(jù)輸入
SCK D15 - 引腳16 promicro SCLK - 串行時(shí)鐘輸入
HOLD VCC - 引腳21 promicro保持輸入
Vcc VCC - 引腳21電源電壓
第二25LC256
編號(hào)。,名稱,連接,注意
CS D10 PD7 - 引腳06 promicro芯片選擇輸入
SO D14 - 引腳15 promicro MISO - 串行數(shù)據(jù)輸出
WP VCC - 引腳21 promicro寫(xiě)保護(hù)
Vss GND - 引腳23 promicro接地
SI D16 - 引腳14 promicro MOSI - 串行數(shù)據(jù)輸入
SCK D15 - 引腳16 promicro SCLK - 串行時(shí)鐘輸入
HOLD VCC - 引腳21 promicro保持輸入
Vcc VCC - 引腳21 promicro電源電壓
Ste第4頁(yè):源代碼
源代碼可在此處找到。它在線記錄很多,所以我不打算在這里逐行完成。
我確定程序中還有缺陷(實(shí)際上,我所知道的所有缺陷都列在程序頂部的注釋部分,還有一個(gè)列表我所提到的缺陷)。因此,使用該產(chǎn)品需要您自擔(dān)風(fēng)險(xiǎn)。
重要:我建議您在添加,刪除或修改憑據(jù)時(shí)備份對(duì)主EEprom所做的更改,以使您的輔助EEprom保持最新?tīng)顟B(tài)。然后使用第三個(gè)EEprom,以便對(duì)憑據(jù)進(jìn)行兩次備份。最重要的是,定期將憑證轉(zhuǎn)儲(chǔ)到您存儲(chǔ)在拇指驅(qū)動(dòng)器上的加密文件中的文件,并將拇指驅(qū)動(dòng)器固定在安全或保險(xiǎn)箱中。最后,讓您的帳戶保持最新,這樣如果您需要重置忘記的密碼,您可以這樣做。此產(chǎn)品未經(jīng)過(guò)專業(yè)測(cè)試,質(zhì)量目的,您可能會(huì)丟失憑據(jù)。您已獲得源代碼,以便您可以更正找到的任何缺陷。也就是說(shuō),我已經(jīng)使用該設(shè)備幾個(gè)月沒(méi)有發(fā)生事故了,我將所有憑據(jù)存儲(chǔ)在其中,其中許多使用生成的密碼功能,所以如果我丟失設(shè)備和備份我我需要重置我的帳戶,因?yàn)樵谶@一點(diǎn)上我絕對(duì)無(wú)法知道密碼是什么。我也按照上面的建議維護(hù)備份。
重要披露:使用提供的加密庫(kù)我努力加密存儲(chǔ)在外部25LC256上的所有憑據(jù)使用AES128的EEprom(并散列主密碼,使用SHA256存儲(chǔ)在內(nèi)部EEprom上)。我已經(jīng)使用了哈希主密碼和每組憑據(jù)。這個(gè)項(xiàng)目是我第一次使用加密,并且沒(méi)有正式的代碼審查,所以我可能做錯(cuò)了,標(biāo)準(zhǔn)免責(zé)聲明(買(mǎi)家當(dāng)心)適用于這種情況。我使用PC和CH340 24/25系列EEprom閃存BIOS USB編程器檢查了外部EEprom芯片的內(nèi)容(存儲(chǔ)了多組憑據(jù)后),所有用戶名,帳戶名和密碼都顯示為加密狀態(tài)。但是,我很痛苦地意識(shí)到加密很容易做錯(cuò),因此請(qǐng)謹(jǐn)慎行事。如果您熟悉這方面的內(nèi)容,我將非常感謝代碼審查和一些建設(shè)性的反饋(請(qǐng)直接與我聯(lián)系)。
草圖目前使用97%的程序存儲(chǔ)區(qū)域和66%的動(dòng)態(tài)內(nèi)存。這使得向產(chǎn)品添加新功能非常困難,而無(wú)需將其更換為現(xiàn)有功能。我想添加幾個(gè)新功能,但由于內(nèi)存限制,我不能。例如,在完全不活動(dòng)1小時(shí)后,設(shè)備超時(shí)并且您已退出該設(shè)備。我想讓這個(gè)時(shí)間段可配置(例如,如果你愿意,可以將它設(shè)置為2小時(shí)),但我根本沒(méi)有空間來(lái)添加該功能。我認(rèn)為一個(gè)小時(shí)可能是一個(gè)很好的妥協(xié),當(dāng)我在我身邊的設(shè)備上工作時(shí),我會(huì)定期將旋轉(zhuǎn)編碼器向任意方向旋轉(zhuǎn)一兩次,以便自動(dòng)注銷一小時(shí)。
步驟5:庫(kù)
如果要編譯源代碼,需要在Arduino IDE中安裝以下庫(kù):
- https://rweather.github.io/arduinolibs/index.html 。.. - AES和SHA庫(kù),麻省理工學(xué)院許可證。
- https://github.com/LennartHennigs/Button2 - 用于旋轉(zhuǎn)編碼器上的按鈕,版權(quán)所有(c)2017 LennartHennigs,MIT License。
- https://github.com/LennartHennigs/Button2 - 用于旋轉(zhuǎn)編碼器,GNU GPL版本3.
- https://github.com/LennartHennigs/Button2 - 用于將字符發(fā)送到鍵盤(pán),就像用戶輸入GNU Lesser General Public License一樣。
- https://github.com/LennartHennigs/Button2 - 用于內(nèi)部EEprom
- https://github.com/LennartHennigs/Button2 - 用于SSD1306顯示設(shè)備,Bill Greiman
步驟6:編譯
確保安裝了所有必需的庫(kù)。將董事會(huì)設(shè)置為“Arduino Leonardo”。請(qǐng)記住,您將通過(guò)外部程序員上傳,因此請(qǐng)?jiān)赑rogrammer中設(shè)置該值。我使用Pololu USB AVR編程器。
步驟7:閃爍程序
我正在使用外部程序員將程序刻錄到設(shè)備上。即從Arduino IDE我選擇Sketch - 》 Upload Using Programmer將程序發(fā)送到Atmel ATMega32u4/Arduino Pro Micro。我這樣做的部分原因是因?yàn)樗采w了引導(dǎo)裝載程序,我想要覆蓋引導(dǎo)因?yàn)橥ㄟ^(guò)這樣做,我在設(shè)備的設(shè)備上有更多的空間。如果引導(dǎo)加載程序存在,我認(rèn)為該程序不適合Pro Micro,但我還沒(méi)有測(cè)試過(guò)。我也不認(rèn)為由于其他原因,設(shè)備將與引導(dǎo)加載程序一起正常工作。因此,我使用Pololu USB AVR編程器。在使用外部編程器編程時(shí),我仍然需要通過(guò)USB電纜為設(shè)備供電。如果你通過(guò)以下方式構(gòu)建設(shè)備如果您希望能夠加載固件,請(qǐng)確保在將Arduino Pro Micro焊接到USB板后,不要自行尋找部件,或者如果您使用該套件進(jìn)行構(gòu)建,請(qǐng)務(wù)必不要剪斷插頭引腳。如果您希望能夠加載固件。插頭引腳與PCB板齊平,將無(wú)法重新啟動(dòng)設(shè)備;您需要將VDD,GND,RST,MOSI,MISO和SCK連接到外部編程器的Arduino Pro Micro以閃存程序。這里有關(guān)于這樣做的說(shuō)明。請(qǐng)放心,我對(duì)鎖定位的初始設(shè)置不會(huì)阻止您重新刷新程序。如果要在重新刷新程序后重置鎖定位,則可以執(zhí)行此操作。對(duì)我來(lái)說(shuō),最簡(jiǎn)單的方法是使用Atmel Studio和我的USB AVRISP XPII。但是你真的不需要設(shè)置鎖定位,因?yàn)闊o(wú)論如何,源代碼現(xiàn)在都可供所有人使用。存儲(chǔ)在內(nèi)部EEprom中的主密碼使用SHA-256進(jìn)行哈希處理。
步驟8:操作
要打開(kāi)設(shè)備,只需使用micro USB Micro-B插頭將其插入U(xiǎn)SB端口/插座即可 - 插頭線,與用于為Android手機(jī)充電的線纜相同。第一次將其插入驅(qū)動(dòng)程序時(shí)可能需要安裝。可以在源代碼部分中引用的源代碼存儲(chǔ)庫(kù)中下載該驅(qū)動(dòng)程序。
首次啟動(dòng)設(shè)備時(shí),您會(huì)看到:
主密碼 2019年3月11日 (或最近編譯的日期)
此時(shí)您需要輸入主密碼。嘗試選擇您會(huì)滿意的主密碼,因?yàn)槿绻胍乃仨氈刂迷O(shè)備,這將清除您的所有憑據(jù)。之后只有一種方法可以通過(guò)鍵盤(pán)或旋轉(zhuǎn)編碼器將憑證鍵入設(shè)備。還要嘗試選擇可以更快速地輸入設(shè)備的密碼。它應(yīng)該是大小寫(xiě)的組合,帶有數(shù)字,也許是一個(gè)或兩個(gè)符號(hào)。我喜歡選擇幾乎完全用左手打字的密碼,我發(fā)現(xiàn)它們更容易通過(guò)旋轉(zhuǎn)編碼器輸入。你應(yīng)該選擇一個(gè)強(qiáng)密碼;字母,大寫(xiě)和小寫(xiě),數(shù)字和特殊字符的組合,長(zhǎng)度在7到14個(gè)字符之間。要輸入字符,請(qǐng)轉(zhuǎn)動(dòng)旋轉(zhuǎn)編碼器,直到出現(xiàn)該字符,然后向下按下旋轉(zhuǎn)編碼器(短按)以選擇字符。如果你犯了錯(cuò)誤,目前無(wú)法備份,所以要小心(或者如果你可以把它擠進(jìn)來(lái)自己增強(qiáng)代碼!)。輸入完整主密碼后,長(zhǎng)按設(shè)備(單擊旋轉(zhuǎn)編碼器超過(guò)1/2秒)。您剛輸入主密碼,現(xiàn)在您已準(zhǔn)備好輸入一組憑據(jù)。
通過(guò)旋轉(zhuǎn)編碼器移動(dòng)菜單項(xiàng),順時(shí)針向下移動(dòng)列表,逆時(shí)針向上移動(dòng)。帳戶名稱按字母順序存儲(chǔ)。要選擇項(xiàng)目,請(qǐng)單擊旋轉(zhuǎn)編碼器(短按)。要備份,請(qǐng)按住旋轉(zhuǎn)編碼器超過(guò)半秒鐘(長(zhǎng)按)。
添加憑據(jù)
添加一組通過(guò)鍵盤(pán)的憑據(jù)您需要打開(kāi)一個(gè)串行終端。最適合我的是Arduino串行終端。因此,如果您打開(kāi)Arduino IDE,請(qǐng)轉(zhuǎn)到Tools-》 Ports并選擇Arduino/Genuino Micro端口。然后選擇工具 - 》串行監(jiān)視器(或Ctl + Shift + M)。接下來(lái),在您的PasswordPump上向下導(dǎo)航至Keyboard OFF并通過(guò)短按將其更改為鍵盤(pán)ON。導(dǎo)航回添加帳戶并短按。您將看到:
帳戶名稱添加帳戶
短按,然后切換回Arduino串行終端并輸入帳戶名稱,然后是返回鍵。然后長(zhǎng)按密碼泵。你現(xiàn)在應(yīng)該看到:
編輯用戶名
[您輸入的帳戶名稱]
再次短按,切換回Arduino串行終端并輸入用戶名,然后返回鍵。然后長(zhǎng)按密碼泵。您現(xiàn)在應(yīng)該看到:
編輯密碼
[您輸入的帳戶名稱]
再次短按,切換回Arduino串行終端并輸入密碼,然后輸入返回鍵。然后長(zhǎng)按密碼泵。你現(xiàn)在應(yīng)該看到:
指示樣式
[您輸入的帳戶名稱]
再次短按并使用旋轉(zhuǎn)編碼器指定0或1.如果,則指定0提供用戶名和密碼,密碼泵應(yīng)在發(fā)送用戶名之后和發(fā)送密碼之前發(fā)送回車。如果在提供用戶名和密碼時(shí),密碼泵應(yīng)在發(fā)送用戶名之后和發(fā)送密碼之前發(fā)送選項(xiàng)卡,請(qǐng)指定1。然后長(zhǎng)按密碼泵。您現(xiàn)在應(yīng)該看到:
帳戶名稱[您輸入的帳戶名稱]
再次長(zhǎng)按,您會(huì)看到:
查找?guī)?/p>
[您輸入的帳戶名稱]
您已完成輸入憑據(jù)。
請(qǐng)注意,您也可以僅使用旋轉(zhuǎn)編碼器輸入憑據(jù)。鍵盤(pán)可以打開(kāi)或關(guān)閉,沒(méi)關(guān)系。只需使用旋轉(zhuǎn)編碼器以與輸入主密碼類似的方式輸入憑證。
發(fā)送憑證 導(dǎo)航到查找?guī)艉投贪础J褂眯D(zhuǎn)編碼器滾動(dòng)您輸入的憑據(jù)列表。當(dāng)您找到與要發(fā)送到計(jì)算機(jī)的憑據(jù)關(guān)聯(lián)的帳戶名稱時(shí),請(qǐng)將輸入焦點(diǎn)放在窗口中的用戶名文本框中,提示您輸入計(jì)算機(jī)上的憑據(jù)。在密碼泵上你應(yīng)該看到:
發(fā)送用戶并通過(guò)
[您選擇的帳戶名稱]
短按以發(fā)送用戶名,回車符或制表符(取決于樣式設(shè)置),然后是密碼。如果您選擇了正確的樣式,現(xiàn)在應(yīng)該登錄到您的帳戶/應(yīng)用程序。
如果您只想將密碼發(fā)送到計(jì)算機(jī),然后回車,請(qǐng)使用旋轉(zhuǎn)編碼器向下滾動(dòng)一次,直至看到:
發(fā)送密碼
[您輸入的帳戶名稱]
短按以發(fā)送密碼和回車符。
同樣,您只能發(fā)送用戶名或只發(fā)送帳戶名。
編輯憑據(jù) 要編輯一組現(xiàn)有憑據(jù),首先要確定是通過(guò)鍵盤(pán)還是僅通過(guò)旋轉(zhuǎn)編碼器編輯憑據(jù)。如果您要通過(guò)鍵盤(pán)編輯憑據(jù),請(qǐng)按照切換鍵盤(pán)輸入中的說(shuō)明進(jìn)行操作。然后使用“查找?guī)簟睂?dǎo)航到要編輯的帳戶并單擊。然后向下滾動(dòng)到編輯信用并短按。然后滾動(dòng)到要編輯的屬性;帳戶名稱,編輯用戶名,編輯密碼或指示樣式。現(xiàn)在點(diǎn)擊即可。使用鍵盤(pán)以添加憑據(jù)中描述的方式重新輸入屬性,或者僅使用旋轉(zhuǎn)編碼器重新輸入屬性。然后長(zhǎng)按以保存更改。如果您要為帳戶生成新密碼,請(qǐng)按照生成密碼中的說(shuō)明進(jìn)行操作。
刪除憑據(jù) 確保您擁有密碼當(dāng)前的EEprom備份。導(dǎo)航到“查找?guī)簟辈螕簟J褂眯D(zhuǎn)編碼器選擇要?jiǎng)h除的帳戶,然后單擊。使用旋轉(zhuǎn)編碼器向下滾動(dòng)到Delete Acct并短按。通過(guò)旋轉(zhuǎn)編碼器選擇Y并短按確認(rèn)刪除帳戶的愿望。該帳戶現(xiàn)在已經(jīng)消失,它已從主EEprom芯片中消失。它尚未從備份EEprom中刪除,因此如果您不小心刪除了某個(gè)帳戶,并且您有最近的備份,則可以恢復(fù)該備份,該帳戶將重新出現(xiàn)。導(dǎo)航到“查找?guī)簟辈Ⅱ?yàn)證您的帳戶是否已刪除。如果您無(wú)法滾動(dòng)瀏覽所有帳戶,則會(huì)發(fā)生間歇性發(fā)生的缺陷,并且管理所有帳戶顯示的鏈接列表已損壞。從EEprom恢復(fù)最新備份。如果您在刪除帳戶后立即備份EEprom,它也會(huì)從次要EEprom中擦除。
生成密碼 在嘗試將密碼更改為新生成的密碼之前,請(qǐng)仔細(xì)閱讀所有這些說(shuō)明。 PasswordPump最強(qiáng)大的功能是能夠生成隨機(jī)的31個(gè)字符密碼并記住它們。這些密碼非常難以猜測(cè),并且不容易受到暴力破解帳戶的攻擊。在執(zhí)行此操作之前,您應(yīng)確保擁有所有憑據(jù)的當(dāng)前備份。要為帳戶生成密碼,只需通過(guò)“查找?guī)簟辈檎規(guī)簦缓笸ㄟ^(guò)單擊帳戶名稱選擇憑據(jù)。在計(jì)算機(jī)上的應(yīng)用程序中,導(dǎo)航到更改密碼功能,并將輸入焦點(diǎn)放在“舊密碼”文本框中。在PasswordPump上導(dǎo)航到發(fā)送密碼(不發(fā)送密碼)并短按。在計(jì)算機(jī)上的應(yīng)用程序中,通過(guò)按鍵將輸入焦點(diǎn)放在新密碼文本框中。在PasswordPump中向下滾動(dòng)到編輯信用并單擊,然后向下滾動(dòng)到Gen密碼并單擊。這會(huì)將密碼更改為隨機(jī)生成的31個(gè)字符的系列。現(xiàn)在長(zhǎng)按一次,導(dǎo)航到發(fā)送密碼(不發(fā)送密碼)并短按。如果您需要確認(rèn)新密碼,請(qǐng)將輸入焦點(diǎn)放在計(jì)算機(jī)應(yīng)用程序中的該文本框上,然后再次單擊。通過(guò)按返回鍵或以其他方式單擊相應(yīng)的按鈕來(lái)確認(rèn)您的密碼更改。您現(xiàn)在在帳戶上有一個(gè)隨機(jī)的31個(gè)字符的密碼,并且密碼存在的唯一位置是在PasswordPump上的加密EEprom芯片上。此時(shí),備份到EEprom和備份到文件是一個(gè)好主意,并確保您可以以某種方式從該帳戶上丟失的密碼中恢復(fù)。警告:如果由于未接受舊密碼而嘗試更改密碼失敗,請(qǐng)注意您剛剛使用新生成的密碼覆蓋了舊密碼。要恢復(fù)舊密碼,您需要從EEprom恢復(fù)備份并重試,或者轉(zhuǎn)到拇指驅(qū)動(dòng)器上的加密備份文件以獲取帳戶的當(dāng)前密碼,或使用任何機(jī)制從帳戶恢復(fù)密碼通過(guò)應(yīng)用程序或網(wǎng)站可以使用。提前考慮并小心,這樣您就不會(huì)將自己鎖在賬戶之外!
退出 當(dāng)您想要登錄時(shí)在設(shè)備外部使用旋轉(zhuǎn)編碼器導(dǎo)航到Logout并短按。 RGB led從綠色變?yōu)樗{(lán)色。您現(xiàn)在已注銷,必須再次輸入主密碼才能使用該設(shè)備。如果您要離開(kāi)計(jì)算機(jī)去喝咖啡,最好先鎖定計(jì)算機(jī)并注銷PasswordPump。
切換鍵盤(pán)輸入 導(dǎo)航到鍵盤(pán)ON/OFF。短按以切換設(shè)置。當(dāng)鍵盤(pán)打開(kāi)時(shí),您可以使用添加憑據(jù)中描述的過(guò)程通過(guò)鍵盤(pán)輸入憑據(jù)。如果您沒(méi)有輸入憑據(jù),請(qǐng)將鍵盤(pán)設(shè)置為OFF。當(dāng)設(shè)備關(guān)機(jī)且默認(rèn)為鍵盤(pán)關(guān)閉時(shí),不保存此設(shè)置。
顯示/隱藏密碼 使用旋轉(zhuǎn)編碼器導(dǎo)航到顯示Psswrd ON/OFF。短按以切換設(shè)置。注銷并關(guān)閉設(shè)備時(shí)會(huì)保存此設(shè)置。
備份到EEprom
在密碼泵上使用旋轉(zhuǎn)編碼器導(dǎo)航到Backup EEprom。短按,然后通過(guò)旋轉(zhuǎn)編碼器選擇Y并短按,確認(rèn)您要從主EEprom備份到輔助EEprom。備份發(fā)生時(shí)RGB將呈黃色,然后變回綠色。
備份到文件
打開(kāi)PasswordPump使用旋轉(zhuǎn)編碼器導(dǎo)航到備份到文件。在您的計(jì)算機(jī)上打開(kāi)一個(gè)文本編輯器(一個(gè)沒(méi)有自動(dòng)完成功能),notepad.exe效果最好,并將輸入焦點(diǎn)放在文本編輯器中。我個(gè)人使用UltraEdit,因?yàn)樗鼉?nèi)置了加密功能。然后短按“備份到文件”。主EEprom芯片的內(nèi)容(存儲(chǔ)在PasswordPump中的所有憑證)將轉(zhuǎn)儲(chǔ)到文本編輯器中。當(dāng)操作完成時(shí),RGB LED變?yōu)樽仙缓笞優(yōu)榫G色。最好使用WinZip或類似方法將密碼壓縮,并將其存儲(chǔ)在拇指驅(qū)動(dòng)器上,然后將其存儲(chǔ)在安全或保險(xiǎn)箱中。從計(jì)算機(jī)中刪除原始文件并清空垃圾箱。通過(guò)定期執(zhí)行此操作使此文件保持最新。我隨身攜帶加密文件放在一個(gè)安全地連接到我的鑰匙環(huán)的拇指驅(qū)動(dòng)器上,我在其他地方備份該文件。
從EEprom恢復(fù)備份
如果您決定要恢復(fù)EEprom備份(或者換句話說(shuō),具有輔助內(nèi)容,備份EEprom將覆蓋主EEprom的內(nèi)容),則導(dǎo)航到恢復(fù)在PasswordPump上備份。短按并通過(guò)旋轉(zhuǎn)編碼器選擇Y并短按確認(rèn)操作。 RGB指示燈將變?yōu)辄S色,直到操作完成,然后它變回綠色。
執(zhí)行出廠重置 您想要的擦除主EEprom上的所有加密憑據(jù)并恢復(fù)出廠設(shè)置。在PasswordPump上使用旋轉(zhuǎn)編碼器一直導(dǎo)航到Reset。短按。通過(guò)旋轉(zhuǎn)編碼器選擇Y并單擊,確認(rèn)您要恢復(fù)出廠設(shè)置并清除所有憑據(jù)和主密碼。在設(shè)備恢復(fù)出廠設(shè)置時(shí),RGB會(huì)慢速閃爍藍(lán)色和紅色,然后快速閃爍,然后變?yōu)樗{(lán)色。此時(shí),您可以輸入新的主密碼。請(qǐng)注意,出廠重置不會(huì)消除備份EEprom上存儲(chǔ)的憑據(jù)。如果使用相同的主密碼,則可以恢復(fù)備份并查看憑據(jù)。如果您想要清除備份EEprom,請(qǐng)?jiān)谳斎胄碌闹髅艽a后選擇Backup EEprom,或者交換主EEprom芯片和備用EEprom芯片的位置并再次恢復(fù)出廠設(shè)置。
步驟9:了解RGB顏色
綠色 - 已登錄
藍(lán)色 - 未登錄
紅色 - 登錄嘗試失敗錯(cuò)誤備份或初始化EEprom
紫色 - 發(fā)送信用卡
黃色 - 備份到EEprom
快速閃爍紅色/藍(lán)色 - 初始化外部EEprom
慢速閃爍紅色/藍(lán)色 - 初始化內(nèi)部EEprom
步驟10:將其全部移動(dòng)到PCB
這是我為PasswordPump設(shè)計(jì)的PCB。如果您有興趣訂購(gòu)自己的設(shè)計(jì)文件,可以使用源代碼。這是我用PCB板設(shè)計(jì)的第一個(gè)項(xiàng)目,歡迎有經(jīng)驗(yàn)的人提供反饋。我想讓設(shè)備更小,所以對(duì)此任何建議都表示贊賞。
步驟11:PCB組裝
裝配應(yīng)該相當(dāng)明顯。指南如下。如果您有任何問(wèn)題,請(qǐng)?jiān)诶^續(xù)之前給我發(fā)送電子郵件(dan-murphy@comcast.net),我會(huì)回答您的問(wèn)題并更新本網(wǎng)站。
1) S2 - 瞬時(shí)按鈕,復(fù)位按鈕,焊接到PCB的背面,以便在Pro Micro焊接到電路板后可以觸及。確保按鈕的方向正確。見(jiàn)上圖。
2) R1,R2,R3 - 220歐姆電阻器,將它們焊接到位。
3) R4,R5 - 4.7k歐姆電阻器,將它們焊接到位。
4) RGB - RGB LED,最長(zhǎng)的引腳在RGB上是地面。它是左邊的第三個(gè)洞或右邊的第二個(gè)洞。它的連接跡線位于PCB的底部,而所有其他位于頂部。焊接引線時(shí),注意不要在焊道之間橋接焊料。這是裝配中最困難的部分。可能需要一些去焊技術(shù)來(lái)移除您意外創(chuàng)建的任何橋梁。使用萬(wàn)用表上的連續(xù)性功能確保在繼續(xù)之前沒(méi)有橋接。
5) U1 (標(biāo)簽已遮擋),U2 -solder 2 IC DIP插座到位。插座中的槽口應(yīng)朝向板的底部(當(dāng)將板放在板上時(shí))。 25LC256芯片中的凹口或凹坑將面向Pro Micro。請(qǐng)參閱本博客頂部的圖片。
6) ARD1 - 將公頭連接到Pro Micro后(使用面包板或自定義PCB本身,焊接時(shí))用于保持接頭精確對(duì)準(zhǔn)的接頭,否則Pro Micro將無(wú)法安裝到定制PCB中,將Micro Micro焊接到位,使面向PCB底部的微型USB端口按照頂部的圖片進(jìn)行焊接頁(yè)。在將瞬時(shí)按鈕焊接到位之前,請(qǐng)勿將Pro Micro焊接到位。將Pro Micro焊接到位后,切勿將引線與PCB齊平,否則您將永遠(yuǎn)無(wú)法重新刷新程序。
7) RE1 - 旋轉(zhuǎn)編碼器。旋轉(zhuǎn)編碼器的兩個(gè)導(dǎo)線用于將編碼器更牢固地固定到PCB上,需要將其稀疏或完全剪斷;這些孔太小而且不對(duì)齊。我發(fā)出的用于制造的下一版PCB將解決這個(gè)問(wèn)題。道歉。
8)最后的焊接步驟是將公頭連接到OLED 128x32,然后將OLED 128x32焊接到PCB,使其懸掛在Pro Micro上。男性標(biāo)題應(yīng)該足夠長(zhǎng),以實(shí)現(xiàn)這一目標(biāo)。我使用彈性材料將顯示器保持在適當(dāng)?shù)奈恢茫⑶乙€穿透PCB上的孔,使它們與PCB的背面齊平,幾乎完全戳穿,并且在那里有足夠的引線焊接到PCB上。
9)將旋鈕插入旋轉(zhuǎn)編碼器。如果您需要取下旋鈕,請(qǐng)注意不要將旋轉(zhuǎn)編碼器從PCB上撕下來(lái)。
10)小心不要彎曲插針,將兩個(gè)25LC256 IC插入插座(帶凹坑)最接近Pro Micro的,請(qǐng)參見(jiàn)本博客頂部的圖片。
11)將micro USB線的公頭插入Pro Micro,將另一端插入計(jì)算機(jī)的USB端口。驅(qū)動(dòng)程序很可能會(huì)自動(dòng)安裝。如果沒(méi)有,它們可以在GitHub上找到。您的PasswordPump應(yīng)顯示:
PasswordPump
2019年3月11日
然后,三秒鐘后:
主密碼
2019年3月11日
單擊旋轉(zhuǎn)編碼器一次,然后輸入您選擇的主密碼。請(qǐng)參閱操作下的說(shuō)明。
步驟12:未來(lái)
我目前受限于可用的閃存量給我在ATMega32u4,32k。所有空間都由程序使用。如果我有更多空間,我可以添加其他功能。特別是,我有興趣編寫(xiě)可以在與PasswordPump完全接口的計(jì)算機(jī)上運(yùn)行的GUI。
使用Arduino串行終端添加憑據(jù)充其量是尷尬的,但我認(rèn)為需要更多的內(nèi)存來(lái)糾正這種情況。我還希望有更多的EEprom空間,以便64個(gè)字節(jié)可用于用戶名,密碼和帳戶名。另外我認(rèn)為使用AES-256進(jìn)行加密會(huì)更好。可能滿足所有這些要求的設(shè)備是帶有ATSAMD51的Adafruit ItsyBitsy M4 Express;以下是該網(wǎng)站的一些廣告功能:
運(yùn)行頻率為120 MHz的Cortex M4處理器
512KB閃存(比Atmel ATmega 32u4大16倍) )
1.4“長(zhǎng)0.7英寸寬(小于Pro Micro)
2MB SPI閃存(與兩個(gè)25LC256芯片中的64k相比)
本機(jī)硬件I2C和串行(與SSD1306顯示器接口)
內(nèi)置加密引擎,帶AES,256位(替換加密庫(kù))
每個(gè)操作系統(tǒng)支持的本機(jī)USB(發(fā)送憑證,如鍵盤(pán))
可與Arduino IDE一起使用
內(nèi)置RGB DotStar LED(替換PasswordPump上的RGB)
重置按鈕
使用USB供電
在缺點(diǎn)下,我用于密碼泵的v1的一些庫(kù)將無(wú)法與ItsyBitsy一起使用;特別是鍵盤(pán)庫(kù)以及SSD1306的庫(kù)都會(huì)出現(xiàn)問(wèn)題。可以拋出其他庫(kù),并且可以更容易地編寫(xiě)代碼以適應(yīng)相關(guān)的功能。最大的騙局是ItsyBitsy的價(jià)格,14.95美元,這將使生產(chǎn)PasswordPump的成本增加三倍。
步驟13:密碼泵的初始版本
以上是圖片密碼泵的前三個(gè)原型。
-
Arduino
+關(guān)注
關(guān)注
189文章
6493瀏覽量
190226
發(fā)布評(píng)論請(qǐng)先 登錄
ADI創(chuàng)新電源管理器件介紹

CY4500設(shè)備管理器黃感,顯示沒(méi)有安裝驅(qū)動(dòng)是怎么回事?
hyper管理器,Hyper管理器:管理工具使用指南

KiCad 9 探秘(五):敷銅管理器

EE-146:為ADSP-218x系列DSP實(shí)施啟動(dòng)管理器

bq40z60可編程電池組管理器技術(shù)參考手冊(cè)

全功能-48V熱插拔電源管理器(TPS2392和TPS2393)

deepin文件管理器問(wèn)題解答
C2000位置管理器BISS-C庫(kù)用戶指南

具有連接管理器TRM的TMS320F2838x實(shí)時(shí)微控制器

bq40z50EVM鋰離子電池包管理器評(píng)估模塊

專為運(yùn)行而設(shè)計(jì):使用bq2018電源管理器IC的通用電池監(jiān)控器

TLV320AIC31的HPLOUT輸出到音頻管理器,音頻管理器輸出接到耳機(jī),聲音幾乎聽(tīng)不到怎么處理?
負(fù)載管理器的主要功能
NN325-Q1多重感應(yīng)觸摸管理器數(shù)據(jù)表

評(píng)論