Dies ist der erste Beitrag!
Während ich Python studiere, möchte ich eine Passwortverschlüsselung durchführen! Ich habe darüber nachgedacht. Es scheint, dass Pycrypto als Verschlüsselungspaket bekannt ist und mit Anaconda installiert werden könnte. Daher werde ich dieses Mal Pycrypto verwenden, um die AES-Verschlüsselung von Zeichenfolgen zusammenzufassen.
Die Links, auf die ich beim Erlernen der AES-Verschlüsselung verwiesen habe, lauten wie folgt. https://blanktar.jp/blog/2013/04/python-crypto-aes.html https://ujise.com/2019/08/23/post-1869/ https://ja.wikipedia.org/wiki/Advanced_Encryption_Standard
Nun der eigentliche Code. Der folgende Code übergibt den Text des Passworts und verschlüsselt und entschlüsselt es. Die verschlüsselten Daten werden als password_data_file gespeichert.
pycrypto.py
from Crypto.Cipher import AES
#Tasteneinstellungsfunktion
def create_key(KeyWord):
key_size = 32
KeySizeFill = KeyWord.zfill(key_size)
Key = KeySizeFill[:key_size].encode('utf-8')
return Key
#Passwortverschlüsselungsfunktion
def encryptOn(PassWord, KeyWord):
iv = "1234567890123456" #Einstellung des Initialisierungsvektors
Key = create_key(KeyWord) #Tasteneinstellung
obj = AES.new(Key, AES.MODE_CFB, iv)
ret_bytes = obj.encrypt(IPassWord) #Passwortverschlüsselung
#Ausgabe der verschlüsselten Datei
OFileName = "password_data_file"
with open(OFileName, mode='wb') as f:
f.write(ret_bytes)
#Funktion zum Zusammensetzen von Passwörtern
def encryptOff(KeyWord):
#Passwortdatei lesen
PassFile = "password_data_file"
with open(PassFile, 'rb') as f:
EnPass = f.read() #Verschlüsseltes Passwort
iv = "1234567890123456" #Einstellung des Initialisierungsvektors
key = create_key(KeyWord) #Tasteneinstellung
obj = AES.new(key, AES.MODE_CFB, iv)
OPassword = obj.decrypt(Pass).decode('utf-8') #Passwort-Compounding
return OPassword
if __name__ == '__main__':
IPassWord = "modelPass"
KeyWord = "login_file"
#Kryptografischer Funktionsaufruf
encryptOn(IPassWord, KeyWord)
#Komplexer Funktionsaufruf
OPassWord = encryptOff(KeyWord)
print(OPassWord)
Wenn Sie sich den Referenzcode zum ersten Mal ansehen, ist er kompliziert ~ verstehen Sie? Ich dachte, aber es ist unerwartet einfache Logik. Da der Schlüssel und der Vektor einfach direkt geschrieben werden, müssen sie für jede Verschlüsselung geändert werden.