我目前在教自己如何在Python3中編寫代碼。我通過做各種練習等來做到這一點。基本上,我有一個程序,用戶通過擁有唯一的PIN碼登錄程序。在這項任務中,我被要求通過執行以下操作來擴展我的程序:如何在編碼算法中存儲PIN碼? PYTHON3
「創建一種編碼算法,它將以只讀文件無法讀取的格式存儲PIN碼,只有通過運行PIN嘗試通過相同的算法可以找到匹配。「
這是什麼意思?由於我是Python的新手,我不完全確定要問什麼。有人能以正確的方式指出我的意思,我會如何處理這個問題?
我目前在教自己如何在Python3中編寫代碼。我通過做各種練習等來做到這一點。基本上,我有一個程序,用戶通過擁有唯一的PIN碼登錄程序。在這項任務中,我被要求通過執行以下操作來擴展我的程序:如何在編碼算法中存儲PIN碼? PYTHON3
「創建一種編碼算法,它將以只讀文件無法讀取的格式存儲PIN碼,只有通過運行PIN嘗試通過相同的算法可以找到匹配。「
這是什麼意思?由於我是Python的新手,我不完全確定要問什麼。有人能以正確的方式指出我的意思,我會如何處理這個問題?
您可以輕鬆地使用hash
:
a = hash("1234")
assert(hash("1234") == a)
的想法是,每個引腳輸入你會得到一個輸出至極,你可以存儲,並與比較,但不是針本身。
這是做什麼用的?我還想清楚問題的確切含義。 感謝您的迴應btw! –
不幸的是'哈希(1234)== 1234'。整數在散列不僅僅是他們自己之前必須變得相當大。 –
@JaredGoguen是的,我忘了添加字符串標記,我在公共汽車上,並且在Android應用上工作並不舒服xD – Netwave
當用戶創建帳戶並存儲結果時,您應該對引腳進行散列處理。然後,當用戶再次輸入pin以登錄時,對輸入的pin進行散列,並將結果與存儲的結果進行比較。如果兩者都匹配,他有正確的引腳。
使用SHA256進行散列。做你的研究如何使用SHA256。
請勿使用MD5或SHA1。他們不再安全。
這是我從互聯網上的各種文章的摘錄收集。我用它作爲我自己的參考,但它可能對你有幫助。
https://hnode.github.io/website/blog/guides/passwords.html
鏈接探討了處理密碼不同的方式:從純文本散列拉伸,以及如何散列工作。
聲明:我沒有這篇文章的內容。我從各種相關文章中收集它,並將集合格式化爲一篇文章。
你想要的是一個密碼散列函數。 https://simple.wikipedia.org/wiki/Cryptographic_hash_function –