0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何制作密碼管理器

454398 ? 來源:工程師吳畏 ? 2019-08-21 17:39 ? 次閱讀

步驟1:了解現(xiàn)有技術(shù),項目和產(chǎn)品

如何制作密碼管理器

我相信很多人仍然使用上面描述的技術(shù)來記住他們的密碼,即他們將它們存儲在筆記本或便利貼上。這有兩個原因是危險的。顯然,如果有人偷了你的筆記本電腦,那么游戲結(jié)束了。 PasswordPump會對您的密碼進行加密,并需要輸入主密碼才能訪問所有其他密碼;所以如果有人偷了它,他們?nèi)匀粺o法獲取你的密碼。其次,人們并不總是選擇真的難以猜測的密碼,甚至是用字典攻擊來暴力破解。密碼泵的最佳功能之一是它允許您生成并記住31個字符密碼,這些密碼是ASCII字符,數(shù)字和符號的隨機混合。

我認為與PasswordPump功能集最匹配的商業(yè)產(chǎn)品是Mooltipass Mini Offline Password Keeper;在撰寫本文時,運費前$ 79.00。 Mooltipass在某些重要方面有所不同,似乎是一個很好的,成熟的開源產(chǎn)品,也是建立在ATMega32u4上的。我最近才意識到一個開源密碼管理器Memtype,它聲稱是“一個優(yōu)雅的解決方案,可以將你的憑據(jù)存儲在各處”。它看起來真的很酷,其中最酷的一點是它建立在ATTiny上!最后,在這個網(wǎng)站上有另一個類似的項目,Arduino Pro Micro上的密碼管理器,這是一個很好的例子,甚至提供了一種通過PC上的程序編輯憑據(jù)的方法。但是,Mooltipass,Memtype或密碼管理員不是這個項目的靈感來源。這個項目的靈感來自Automated Password Typer。然而,憑據(jù)被硬編碼到Automated Password Typer中,并且無法添加新的,刪除舊的或編輯現(xiàn)有憑證(除了修改源代碼,重新編譯和重新刷新);和鎖定位未設(shè)置為保護憑據(jù)。我開始擴展該項目中提出的想法,之后有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瞬時按鈕0.01

- 2 25LC256外部EEprom 1.89

* 零件總成本:8.17美元

*請記住,您需要一根微型USB轉(zhuǎn)USB線和面包板

步驟3 :進行硬件連接

此處提供了Fritzing圖。這些表也可以在這里找到,我可以更好地格式化它們,這可能會更有幫助。

Arduino Pro Micro (帶ATMega32u4微控制器

數(shù)據(jù)表

Arduino Pro Micro 引腳編號。,名稱,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 - 針對25LC256的針1主芯片選擇

MOSI D16 PB2 - 引腳5主25LC256,備用25LC256

MISO D14 PB3 - 引腳2主25LC256,備用25LC256

SCLK D15 PB1 - 引腳6主25LC256,備用25LC256

A0 D18 PF7-未連接,必須浮動用于隨機#發(fā)電機

A1 D19 PF6 - 紅色RGB引腳

A2 D20 PF5 - 綠色RGB引腳

A3 D21 PF4 - 藍色RGB引腳

Vcc(+ 3V) - 正軌

復位 - 復位按鈕

GND - 負極接地軌,GND RGB,GND SSD1306,GND編碼器按鈕,GND 2 25LC256芯片

RAW(USB + 5V) - 未連接

25LC256 (外部EEprom)測試部件: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寫保護

Vss GND - 引腳23 promicro接地

SI D16 - 引腳14 promicro MOSI - 串行數(shù)據(jù)輸入

SCK D15 - 引腳16 promicro SCLK - 串行時鐘輸入

HOLD VCC - 引腳21 promicro保持輸入

Vcc VCC - 引腳21電源電壓

第二25LC256

編號。,名稱,連接,注意

CS D10 PD7 - 引腳06 promicro芯片選擇輸入

SO D14 - 引腳15 promicro MISO - 串行數(shù)據(jù)輸出

WP VCC - 引腳21 promicro寫保護

Vss GND - 引腳23 promicro接地

SI D16 - 引腳14 promicro MOSI - 串行數(shù)據(jù)輸入

SCK D15 - 引腳16 promicro SCLK - 串行時鐘輸入

HOLD VCC - 引腳21 promicro保持輸入

Vcc VCC - 引腳21 promicro電源電壓

Ste第4頁:源代碼

源代碼可在此處找到。它在線記錄很多,所以我不打算在這里逐行完成。

我確定程序中還有缺陷(實際上,我所知道的所有缺陷都列在程序頂部的注釋部分,還有一個列表我所提到的缺陷)。因此,使用該產(chǎn)品需要您自擔風險。

重要:我建議您在添加,刪除或修改憑據(jù)時備份對主EEprom所做的更改,以使您的輔助EEprom保持最新狀態(tài)。然后使用第三個EEprom,以便對憑據(jù)進行兩次備份。最重要的是,定期將憑證轉(zhuǎn)儲到您存儲在拇指驅(qū)動器上的加密文件中的文件,并將拇指驅(qū)動器固定在安全或保險箱中。最后,讓您的帳戶保持最新,這樣如果您需要重置忘記的密碼,您可以這樣做。此產(chǎn)品未經(jīng)過專業(yè)測試,質(zhì)量目的,您可能會丟失憑據(jù)。您已獲得源代碼,以便您可以更正找到的任何缺陷。也就是說,我已經(jīng)使用該設(shè)備幾個月沒有發(fā)生事故了,我將所有憑據(jù)存儲在其中,其中許多使用生成的密碼功能,所以如果我丟失設(shè)備和備份我我需要重置我的帳戶,因為在這一點上我絕對無法知道密碼是什么。我也按照上面的建議維護備份。

重要披露:使用提供的加密庫我努力加密存儲在外部25LC256上的所有憑據(jù)使用AES128的EEprom(并散列主密碼,使用SHA256存儲在內(nèi)部EEprom上)。我已經(jīng)使用了哈希主密碼和每組憑據(jù)。這個項目是我第一次使用加密,并且沒有正式的代碼審查,所以我可能做錯了,標準免責聲明(買家當心)適用于這種情況。我使用PC和CH340 24/25系列EEprom閃存BIOS USB編程器檢查了外部EEprom芯片的內(nèi)容(存儲了多組憑據(jù)后),所有用戶名,帳戶名和密碼都顯示為加密狀態(tài)。但是,我很痛苦地意識到加密很容易做錯,因此請謹慎行事。如果您熟悉這方面的內(nèi)容,我將非常感謝代碼審查和一些建設(shè)性的反饋(請直接與我聯(lián)系)。

草圖目前使用97%的程序存儲區(qū)域和66%的動態(tài)內(nèi)存。這使得向產(chǎn)品添加新功能非常困難,而無需將其更換為現(xiàn)有功能。我想添加幾個新功能,但由于內(nèi)存限制,我不能。例如,在完全不活動1小時后,設(shè)備超時并且您已退出該設(shè)備。我想讓這個時間段可配置(例如,如果你愿意,可以將它設(shè)置為2小時),但我根本沒有空間來添加該功能。我認為一個小時可能是一個很好的妥協(xié),當我在我身邊的設(shè)備上工作時,我會定期將旋轉(zhuǎn)編碼器向任意方向旋轉(zhuǎn)一兩次,以便自動注銷一小時。

步驟5:庫

如果要編譯源代碼,需要在Arduino IDE中安裝以下庫:

- https://rweather.github.io/arduinolibs/index.html 。.. - AES和SHA庫,麻省理工學院許可證。

- 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ā)送到鍵盤,就像用戶輸入GNU Lesser General Public License一樣。

- https://github.com/LennartHennigs/Button2 - 用于內(nèi)部EEprom

- https://github.com/LennartHennigs/Button2 - 用于SSD1306顯示設(shè)備,Bill Greiman

步驟6:編譯

確保安裝了所有必需的庫。將董事會設(shè)置為“Arduino Leonardo”。請記住,您將通過外部程序員上傳,因此請在Programmer中設(shè)置該值。我使用Pololu USB AVR編程器。

步驟7:閃爍程序

我正在使用外部程序員將程序刻錄到設(shè)備上。即從Arduino IDE我選擇Sketch - 》 Upload Using Programmer將程序發(fā)送到Atmel ATMega32u4/Arduino Pro Micro。我這樣做的部分原因是因為它覆蓋了引導裝載程序,我想要覆蓋引導因為通過這樣做,我在設(shè)備的設(shè)備上有更多的空間。如果引導加載程序存在,我認為該程序不適合Pro Micro,但我還沒有測試過。我也不認為由于其他原因,設(shè)備將與引導加載程序一起正常工作。因此,我使用Pololu USB AVR編程器。在使用外部編程器編程時,我仍然需要通過USB電纜為設(shè)備供電。如果你通過以下方式構(gòu)建設(shè)備如果您希望能夠加載固件,請確保在將Arduino Pro Micro焊接到USB板后,不要自行尋找部件,或者如果您使用該套件進行構(gòu)建,請務(wù)必不要剪斷插頭引腳。如果您希望能夠加載固件。插頭引腳與PCB板齊平,將無法重新啟動設(shè)備;您需要將VDD,GND,RST,MOSI,MISO和SCK連接到外部編程器的Arduino Pro Micro以閃存程序。這里有關(guān)于這樣做的說明。請放心,我對鎖定位的初始設(shè)置不會阻止您重新刷新程序。如果要在重新刷新程序后重置鎖定位,則可以執(zhí)行此操作。對我來說,最簡單的方法是使用Atmel Studio和我的USB AVRISP XPII。但是你真的不需要設(shè)置鎖定位,因為無論如何,源代碼現(xiàn)在都可供所有人使用。存儲在內(nèi)部EEprom中的主密碼使用SHA-256進行哈希處理。

步驟8:操作

要打開設(shè)備,只需使用micro USB Micro-B插頭將其插入USB端口/插座即可 - 插頭線,與用于為Android手機充電的線纜相同。第一次將其插入驅(qū)動程序時可能需要安裝??梢栽谠创a部分中引用的源代碼存儲庫中下載該驅(qū)動程序。

首次啟動設(shè)備時,您會看到:

主密碼 2019年3月11日 (或最近編譯的日期)

此時您需要輸入主密碼。嘗試選擇您會滿意的主密碼,因為如果您想要更改它,您必須重置設(shè)備,這將清除您的所有憑據(jù)。之后只有一種方法可以通過鍵盤或旋轉(zhuǎn)編碼器將憑證鍵入設(shè)備。還要嘗試選擇可以更快速地輸入設(shè)備的密碼。它應(yīng)該是大小寫的組合,帶有數(shù)字,也許是一個或兩個符號。我喜歡選擇幾乎完全用左手打字的密碼,我發(fā)現(xiàn)它們更容易通過旋轉(zhuǎn)編碼器輸入。你應(yīng)該選擇一個強密碼;字母,大寫和小寫,數(shù)字和特殊字符的組合,長度在7到14個字符之間。要輸入字符,請轉(zhuǎn)動旋轉(zhuǎn)編碼器,直到出現(xiàn)該字符,然后向下按下旋轉(zhuǎn)編碼器(短按)以選擇字符。如果你犯了錯誤,目前無法備份,所以要小心(或者如果你可以把它擠進來自己增強代碼!)。輸入完整主密碼后,長按設(shè)備(單擊旋轉(zhuǎn)編碼器超過1/2秒)。您剛輸入主密碼,現(xiàn)在您已準備好輸入一組憑據(jù)。

通過旋轉(zhuǎn)編碼器移動菜單項,順時針向下移動列表,逆時針向上移動。帳戶名稱按字母順序存儲。要選擇項目,請單擊旋轉(zhuǎn)編碼器(短按)。要備份,請按住旋轉(zhuǎn)編碼器超過半秒鐘(長按)。

添加憑據(jù)

添加一組通過鍵盤的憑據(jù)您需要打開一個串行終端。最適合我的是Arduino串行終端。因此,如果您打開Arduino IDE,請轉(zhuǎn)到Tools-》 Ports并選擇Arduino/Genuino Micro端口。然后選擇工具 - 》串行監(jiān)視器(或Ctl + Shift + M)。接下來,在您的PasswordPump上向下導航至Keyboard OFF并通過短按將其更改為鍵盤ON。導航回添加帳戶并短按。您將看到:

帳戶名稱添加帳戶

短按,然后切換回Arduino串行終端并輸入帳戶名稱,然后是返回鍵。然后長按密碼泵。你現(xiàn)在應(yīng)該看到:

編輯用戶名

[您輸入的帳戶名稱]

再次短按,切換回Arduino串行終端并輸入用戶名,然后返回鍵。然后長按密碼泵。您現(xiàn)在應(yīng)該看到:

編輯密碼

[您輸入的帳戶名稱]

再次短按,切換回Arduino串行終端并輸入密碼,然后輸入返回鍵。然后長按密碼泵。你現(xiàn)在應(yīng)該看到:

指示樣式

[您輸入的帳戶名稱]

再次短按并使用旋轉(zhuǎn)編碼器指定0或1.如果,則指定0提供用戶名和密碼,密碼泵應(yīng)在發(fā)送用戶名之后和發(fā)送密碼之前發(fā)送回車。如果在提供用戶名和密碼時,密碼泵應(yīng)在發(fā)送用戶名之后和發(fā)送密碼之前發(fā)送選項卡,請指定1。然后長按密碼泵。您現(xiàn)在應(yīng)該看到:

帳戶名稱[您輸入的帳戶名稱]

再次長按,您會看到:

查找?guī)?/p>

[您輸入的帳戶名稱]

您已完成輸入憑據(jù)。

請注意,您也可以僅使用旋轉(zhuǎn)編碼器輸入憑據(jù)。鍵盤可以打開或關(guān)閉,沒關(guān)系。只需使用旋轉(zhuǎn)編碼器以與輸入主密碼類似的方式輸入憑證。

發(fā)送憑證 導航到查找?guī)艉投贪?。使用旋轉(zhuǎn)編碼器滾動您輸入的憑據(jù)列表。當您找到與要發(fā)送到計算機的憑據(jù)關(guān)聯(lián)的帳戶名稱時,請將輸入焦點放在窗口中的用戶名文本框中,提示您輸入計算機上的憑據(jù)。在密碼泵上你應(yīng)該看到:

發(fā)送用戶并通過

[您選擇的帳戶名稱]

短按以發(fā)送用戶名,回車符或制表符(取決于樣式設(shè)置),然后是密碼。如果您選擇了正確的樣式,現(xiàn)在應(yīng)該登錄到您的帳戶/應(yīng)用程序。

如果您只想將密碼發(fā)送到計算機,然后回車,請使用旋轉(zhuǎn)編碼器向下滾動一次,直至看到:

發(fā)送密碼

[您輸入的帳戶名稱]

短按以發(fā)送密碼和回車符。

同樣,您只能發(fā)送用戶名或只發(fā)送帳戶名。

編輯憑據(jù) 要編輯一組現(xiàn)有憑據(jù),首先要確定是通過鍵盤還是僅通過旋轉(zhuǎn)編碼器編輯憑據(jù)。如果您要通過鍵盤編輯憑據(jù),請按照切換鍵盤輸入中的說明進行操作。然后使用“查找?guī)簟睂Ш降揭庉嫷膸舨螕?。然后向下滾動到編輯信用并短按。然后滾動到要編輯的屬性;帳戶名稱,編輯用戶名,編輯密碼或指示樣式。現(xiàn)在點擊即可。使用鍵盤以添加憑據(jù)中描述的方式重新輸入屬性,或者僅使用旋轉(zhuǎn)編碼器重新輸入屬性。然后長按以保存更改。如果您要為帳戶生成新密碼,請按照生成密碼中的說明進行操作。

刪除憑據(jù) 確保您擁有密碼當前的EEprom備份。導航到“查找?guī)簟辈螕?。使用旋轉(zhuǎn)編碼器選擇要刪除的帳戶,然后單擊。使用旋轉(zhuǎn)編碼器向下滾動到Delete Acct并短按。通過旋轉(zhuǎn)編碼器選擇Y并短按確認刪除帳戶的愿望。該帳戶現(xiàn)在已經(jīng)消失,它已從主EEprom芯片中消失。它尚未從備份EEprom中刪除,因此如果您不小心刪除了某個帳戶,并且您有最近的備份,則可以恢復該備份,該帳戶將重新出現(xiàn)。導航到“查找?guī)簟辈Ⅱ炞C您的帳戶是否已刪除。如果您無法滾動瀏覽所有帳戶,則會發(fā)生間歇性發(fā)生的缺陷,并且管理所有帳戶顯示的鏈接列表已損壞。從EEprom恢復最新備份。如果您在刪除帳戶后立即備份EEprom,它也會從次要EEprom中擦除。

生成密碼 在嘗試將密碼更改為新生成的密碼之前,請仔細閱讀所有這些說明。 PasswordPump最強大的功能是能夠生成隨機的31個字符密碼并記住它們。這些密碼非常難以猜測,并且不容易受到暴力破解帳戶的攻擊。在執(zhí)行此操作之前,您應(yīng)確保擁有所有憑據(jù)的當前備份。要為帳戶生成密碼,只需通過“查找?guī)簟辈檎規(guī)簦缓笸ㄟ^單擊帳戶名稱選擇憑據(jù)。在計算機上的應(yīng)用程序中,導航到更改密碼功能,并將輸入焦點放在“舊密碼”文本框中。在PasswordPump上導航到發(fā)送密碼(不發(fā)送密碼)并短按。在計算機上的應(yīng)用程序中,通過按鍵將輸入焦點放在新密碼文本框中。在PasswordPump中向下滾動到編輯信用并單擊,然后向下滾動到Gen密碼并單擊。這會將密碼更改為隨機生成的31個字符的系列?,F(xiàn)在長按一次,導航到發(fā)送密碼(不發(fā)送密碼)并短按。如果您需要確認新密碼,請將輸入焦點放在計算機應(yīng)用程序中的該文本框上,然后再次單擊。通過按返回鍵或以其他方式單擊相應(yīng)的按鈕來確認您的密碼更改。您現(xiàn)在在帳戶上有一個隨機的31個字符的密碼,并且密碼存在的唯一位置是在PasswordPump上的加密EEprom芯片上。此時,備份到EEprom和備份到文件是一個好主意,并確保您可以以某種方式從該帳戶上丟失的密碼中恢復。警告:如果由于未接受舊密碼而嘗試更改密碼失敗,請注意您剛剛使用新生成的密碼覆蓋了舊密碼。要恢復舊密碼,您需要從EEprom恢復備份并重試,或者轉(zhuǎn)到拇指驅(qū)動器上的加密備份文件以獲取帳戶的當前密碼,或使用任何機制從帳戶恢復密碼通過應(yīng)用程序或網(wǎng)站可以使用。提前考慮并小心,這樣您就不會將自己鎖在賬戶之外!

退出 當您想要登錄時在設(shè)備外部使用旋轉(zhuǎn)編碼器導航到Logout并短按。 RGB led從綠色變?yōu)樗{色。您現(xiàn)在已注銷,必須再次輸入主密碼才能使用該設(shè)備。如果您要離開計算機去喝咖啡,最好先鎖定計算機并注銷PasswordPump。

切換鍵盤輸入 導航到鍵盤ON/OFF。短按以切換設(shè)置。當鍵盤打開時,您可以使用添加憑據(jù)中描述的過程通過鍵盤輸入憑據(jù)。如果您沒有輸入憑據(jù),請將鍵盤設(shè)置為OFF。當設(shè)備關(guān)機且默認為鍵盤關(guān)閉時,不保存此設(shè)置。

顯示/隱藏密碼 使用旋轉(zhuǎn)編碼器導航到顯示Psswrd ON/OFF。短按以切換設(shè)置。注銷并關(guān)閉設(shè)備時會保存此設(shè)置。

備份到EEprom

在密碼泵上使用旋轉(zhuǎn)編碼器導航到Backup EEprom。短按,然后通過旋轉(zhuǎn)編碼器選擇Y并短按,確認您要從主EEprom備份到輔助EEprom。備份發(fā)生時RGB將呈黃色,然后變回綠色。

備份到文件

打開PasswordPump使用旋轉(zhuǎn)編碼器導航到備份到文件。在您的計算機上打開一個文本編輯器(一個沒有自動完成功能),notepad.exe效果最好,并將輸入焦點放在文本編輯器中。我個人使用UltraEdit,因為它內(nèi)置了加密功能。然后短按“備份到文件”。主EEprom芯片的內(nèi)容(存儲在PasswordPump中的所有憑證)將轉(zhuǎn)儲到文本編輯器中。當操作完成時,RGB LED變?yōu)樽仙?,然后變?yōu)榫G色。最好使用WinZip或類似方法將密碼壓縮,并將其存儲在拇指驅(qū)動器上,然后將其存儲在安全或保險箱中。從計算機中刪除原始文件并清空垃圾箱。通過定期執(zhí)行此操作使此文件保持最新。我隨身攜帶加密文件放在一個安全地連接到我的鑰匙環(huán)的拇指驅(qū)動器上,我在其他地方備份該文件。

從EEprom恢復備份

如果您決定要恢復EEprom備份(或者換句話說,具有輔助內(nèi)容,備份EEprom將覆蓋主EEprom的內(nèi)容),則導航到恢復在PasswordPump上備份。短按并通過旋轉(zhuǎn)編碼器選擇Y并短按確認操作。 RGB指示燈將變?yōu)辄S色,直到操作完成,然后它變回綠色。

執(zhí)行出廠重置 您想要的擦除主EEprom上的所有加密憑據(jù)并恢復出廠設(shè)置。在PasswordPump上使用旋轉(zhuǎn)編碼器一直導航到Reset。短按。通過旋轉(zhuǎn)編碼器選擇Y并單擊,確認您要恢復出廠設(shè)置并清除所有憑據(jù)和主密碼。在設(shè)備恢復出廠設(shè)置時,RGB會慢速閃爍藍色和紅色,然后快速閃爍,然后變?yōu)樗{色。此時,您可以輸入新的主密碼。請注意,出廠重置不會消除備份EEprom上存儲的憑據(jù)。如果使用相同的主密碼,則可以恢復備份并查看憑據(jù)。如果您想要清除備份EEprom,請在輸入新的主密碼后選擇Backup EEprom,或者交換主EEprom芯片和備用EEprom芯片的位置并再次恢復出廠設(shè)置。

步驟9:了解RGB顏色

綠色 - 已登錄

藍色 - 未登錄

紅色 - 登錄嘗試失敗錯誤備份或初始化EEprom

紫色 - 發(fā)送信用卡

黃色 - 備份到EEprom

快速閃爍紅色/藍色 - 初始化外部EEprom

慢速閃爍紅色/藍色 - 初始化內(nèi)部EEprom

步驟10:將其全部移動到PCB

這是我為PasswordPump設(shè)計的PCB。如果您有興趣訂購自己的設(shè)計文件,可以使用源代碼。這是我用PCB板設(shè)計的第一個項目,歡迎有經(jīng)驗的人提供反饋。我想讓設(shè)備更小,所以對此任何建議都表示贊賞。

步驟11:PCB組裝

裝配應(yīng)該相當明顯。指南如下。如果您有任何問題,請在繼續(xù)之前給我發(fā)送電子郵件(dan-murphy@comcast.net),我會回答您的問題并更新本網(wǎng)站。

1) S2 - 瞬時按鈕,復位按鈕,焊接到PCB的背面,以便在Pro Micro焊接到電路板后可以觸及。確保按鈕的方向正確。見上圖。

2) R1,R2,R3 - 220歐姆電阻器,將它們焊接到位。

3) R4,R5 - 4.7k歐姆電阻器,將它們焊接到位。

4) RGB - RGB LED,最長的引腳在RGB上是地面。它是左邊的第三個洞或右邊的第二個洞。它的連接跡線位于PCB的底部,而所有其他位于頂部。焊接引線時,注意不要在焊道之間橋接焊料。這是裝配中最困難的部分??赡苄枰恍┤ズ讣夹g(shù)來移除您意外創(chuàng)建的任何橋梁。使用萬用表上的連續(xù)性功能確保在繼續(xù)之前沒有橋接。

5) U1 (標簽已遮擋),U2 -solder 2 IC DIP插座到位。插座中的槽口應(yīng)朝向板的底部(當將板放在板上時)。 25LC256芯片中的凹口或凹坑將面向Pro Micro。請參閱本博客頂部的圖片。

6) ARD1 - 將公頭連接到Pro Micro后(使用面包板或自定義PCB本身,焊接時)用于保持接頭精確對準的接頭,否則Pro Micro將無法安裝到定制PCB中,將Micro Micro焊接到位,使面向PCB底部的微型USB端口按照頂部的圖片進行焊接頁。在將瞬時按鈕焊接到位之前,請勿將Pro Micro焊接到位。將Pro Micro焊接到位后,切勿將引線與PCB齊平,否則您將永遠無法重新刷新程序。

7) RE1 - 旋轉(zhuǎn)編碼器。旋轉(zhuǎn)編碼器的兩個導線用于將編碼器更牢固地固定到PCB上,需要將其稀疏或完全剪斷;這些孔太小而且不對齊。我發(fā)出的用于制造的下一版PCB將解決這個問題。道歉。

8)最后的焊接步驟是將公頭連接到OLED 128x32,然后將OLED 128x32焊接到PCB,使其懸掛在Pro Micro上。男性標題應(yīng)該足夠長,以實現(xiàn)這一目標。我使用彈性材料將顯示器保持在適當?shù)奈恢?,并且引線穿透PCB上的孔,使它們與PCB的背面齊平,幾乎完全戳穿,并且在那里有足夠的引線焊接到PCB上。

9)將旋鈕插入旋轉(zhuǎn)編碼器。如果您需要取下旋鈕,請注意不要將旋轉(zhuǎn)編碼器從PCB上撕下來。

10)小心不要彎曲插針,將兩個25LC256 IC插入插座(帶凹坑)最接近Pro Micro的,請參見本博客頂部的圖片。

11)將micro USB線的公頭插入Pro Micro,將另一端插入計算機的USB端口。驅(qū)動程序很可能會自動安裝。如果沒有,它們可以在GitHub上找到。您的PasswordPump應(yīng)顯示:

PasswordPump

2019年3月11日

然后,三秒鐘后:

主密碼

2019年3月11日

單擊旋轉(zhuǎn)編碼器一次,然后輸入您選擇的主密碼。請參閱操作下的說明。

步驟12:未來

我目前受限于可用的閃存量給我在ATMega32u4,32k。所有空間都由程序使用。如果我有更多空間,我可以添加其他功能。特別是,我有興趣編寫可以在與PasswordPump完全接口的計算機上運行的GUI。

使用Arduino串行終端添加憑據(jù)充其量是尷尬的,但我認為需要更多的內(nèi)存來糾正這種情況。我還希望有更多的EEprom空間,以便64個字節(jié)可用于用戶名,密碼和帳戶名。另外我認為使用AES-256進行加密會更好??赡軡M足所有這些要求的設(shè)備是帶有ATSAMD51的Adafruit ItsyBitsy M4 Express;以下是該網(wǎng)站的一些廣告功能:

運行頻率為120 MHz的Cortex M4處理器

512KB閃存(比Atmel ATmega 32u4大16倍) )

1.4“長0.7英寸寬(小于Pro Micro)

2MB SPI閃存(與兩個25LC256芯片中的64k相比)

本機硬件I2C和串行(與SSD1306顯示器接口)

內(nèi)置加密引擎,帶AES,256位(替換加密庫)

每個操作系統(tǒng)支持的本機USB(發(fā)送憑證,如鍵盤)

可與Arduino IDE一起使用

內(nèi)置RGB DotStar LED(替換PasswordPump上的RGB)

重置按鈕

使用USB供電

在缺點下,我用于密碼泵的v1的一些庫將無法與ItsyBitsy一起使用;特別是鍵盤庫以及SSD1306的庫都會出現(xiàn)問題??梢話伋銎渌麕欤⑶铱梢愿菀椎鼐帉懘a以適應(yīng)相關(guān)的功能。最大的騙局是ItsyBitsy的價格,14.95美元,這將使生產(chǎn)PasswordPump的成本增加三倍。

步驟13:密碼泵的初始版本

以上是圖片密碼泵的前三個原型。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Arduino
    +關(guān)注

    關(guān)注

    187

    文章

    6454

    瀏覽量

    185984
收藏 人收藏

    評論

    相關(guān)推薦

    NN325-Q1多重感應(yīng)觸摸管理器數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《NN325-Q1多重感應(yīng)觸摸管理器數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 08-06 09:42 ?0次下載
    NN325-Q1多重感應(yīng)觸摸<b class='flag-5'>管理器</b>數(shù)據(jù)表

    設(shè)備管理器中怎么顯示端口COM16?

    設(shè)備管理器中怎么顯示端口COM16
    發(fā)表于 06-04 12:47

    重新編程啟動管理器后,Trace32無法與CPU通信的原因?怎么解決?

    重新編程啟動管理器后,Trace32 無法與 CPU 通信,它能恢復到初始狀態(tài)并與痕跡通信嗎?
    發(fā)表于 05-31 07:13

    鈦酸鋰電池、鋰電池充電管理器SD8065數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《鈦酸鋰電池、鋰電池充電管理器SD8065數(shù)據(jù)手冊.pdf》資料免費下載
    發(fā)表于 05-23 15:19 ?1次下載

    鈦酸鋰電池、鋰電池充電管理器SD8065數(shù)據(jù)手冊

    電子發(fā)燒友網(wǎng)站提供《鈦酸鋰電池、鋰電池充電管理器SD8065數(shù)據(jù)手冊.pdf》資料免費下載
    發(fā)表于 04-25 14:48 ?0次下載

    OpenHarmony實例:【資源管理器

    本工程使用[@ohos.app.ability.common]?接口中的AbilityContext類,獲取資源管理器resourceManager
    的頭像 發(fā)表于 04-09 15:10 ?348次閱讀
    OpenHarmony實例:【資源<b class='flag-5'>管理器</b>】

    四路集成電源設(shè)備電源管理器TPS2384數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《四路集成電源設(shè)備電源管理器TPS2384數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 04-07 09:26 ?0次下載
    四路集成電源設(shè)備電源<b class='flag-5'>管理器</b>TPS2384數(shù)據(jù)表

    KeiL5仿真時報錯, 只能從任務(wù)管理器關(guān)閉它是為什么?

    KeiL5 仿真時報錯,只能從任務(wù)管理器關(guān)閉它, 重啟
    發(fā)表于 04-07 06:44

    超級電容管理器bq33100數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《超級電容管理器bq33100數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 04-01 10:13 ?1次下載
    超級電容<b class='flag-5'>管理器</b>bq33100數(shù)據(jù)表

    Windows 11 22H2新版任務(wù)管理器新增啟用隱藏功能

    關(guān)于如何隱藏調(diào)用舊版任務(wù)管理器,網(wǎng)友 @thebookisclosed 分享了詳細步驟。他指出,在現(xiàn)有 Windows 11 環(huán)境中,即使按 Ctrl+Shift+Esc 組合鍵也難以調(diào)出老版本的任務(wù)管理器,需通過特定路徑“C:\Windows\SysWOW64\Task
    的頭像 發(fā)表于 03-27 15:08 ?369次閱讀

    安卓版Chrome瀏覽現(xiàn)已支持第三方密碼管理器調(diào)用

    據(jù)報道,數(shù)據(jù)解析專家Leppeva64近日在安卓版谷歌Chrome瀏覽的源代碼中透露,該瀏覽已在安卓平臺上實現(xiàn)了對第三方密碼管理器的調(diào)用支持,并覆蓋Stable、Beta及Cana
    的頭像 發(fā)表于 03-19 11:04 ?559次閱讀

    用于冗余-48V電源的熱插拔電源管理器TPS2350 數(shù)據(jù)表

    電子發(fā)燒友網(wǎng)站提供《用于冗余-48V電源的熱插拔電源管理器TPS2350 數(shù)據(jù)表.pdf》資料免費下載
    發(fā)表于 03-15 10:35 ?0次下載
    用于冗余-48V電源的熱插拔電源<b class='flag-5'>管理器</b>TPS2350 數(shù)據(jù)表

    SD8065鈦酸鋰電池、鋰電池充電管理器中文資料

    電子發(fā)燒友網(wǎng)站提供《SD8065鈦酸鋰電池、鋰電池充電管理器中文資料.pdf》資料免費下載
    發(fā)表于 01-02 11:29 ?0次下載

    hbs密碼管理模式詳解

    hbs密碼管理模式詳解? HBS密碼鎖是一種智能化電子鎖具,通過密碼、指紋、密碼+指紋等認證方式來實現(xiàn)門禁的控制。它集成了現(xiàn)代化技術(shù),具有
    的頭像 發(fā)表于 12-29 14:01 ?3599次閱讀

    如何在層堆棧管理器中定義單層板?

    如何在層堆棧管理器中定義單層(單面)板?電路板目前有兩層,但Layer Stack Manager不允許我刪除其中一個信號層。
    的頭像 發(fā)表于 11-10 15:19 ?623次閱讀