Ceci est le premier post!
Tout en étudiant Python, je veux faire du cryptage de mot de passe! J'y ai pensé. Il semble que pycrypto soit célèbre en tant que package de cryptage, et il pourrait être installé avec Anaconda, donc cette fois j'utiliserai pycrypto pour résumer le cryptage AES des chaînes.
Les liens auxquels j'ai fait référence lors de l'apprentissage du cryptage AES sont les suivants. 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
Maintenant, le code réel. Le code ci-dessous transmet le texte du mot de passe et le crypte et le déchiffre. Les données chiffrées sont enregistrées sous le nom password_data_file.
pycrypto.py
from Crypto.Cipher import AES
#Fonction de réglage des touches
def create_key(KeyWord):
    key_size = 32
    KeySizeFill = KeyWord.zfill(key_size)
    Key = KeySizeFill[:key_size].encode('utf-8')
    
    return Key
#Fonction de cryptage du mot de passe
def encryptOn(PassWord, KeyWord):
    iv = "1234567890123456"   #Paramètre vectoriel d'initialisation
    Key = create_key(KeyWord) #Réglage clé
    obj = AES.new(Key, AES.MODE_CFB, iv)
    ret_bytes = obj.encrypt(IPassWord) #Cryptage du mot de passe
    
    #Sortie du fichier crypté
    OFileName = "password_data_file"
    with open(OFileName, mode='wb') as f:
        f.write(ret_bytes)
#Fonction de composition de mot de passe
def encryptOff(KeyWord):
    #Lire le fichier de mot de passe
    PassFile = "password_data_file"  
    with open(PassFile, 'rb') as f:
        EnPass = f.read() #Mot de passe crypté
    iv = "1234567890123456"   #Paramètre vectoriel d'initialisation
    key = create_key(KeyWord) #Réglage clé
    obj = AES.new(key, AES.MODE_CFB, iv)
    OPassword = obj.decrypt(Pass).decode('utf-8') #Composition de mot de passe
    return OPassword
if __name__ == '__main__':
    IPassWord = "modelPass"
    KeyWord = "login_file"
    
    #Appel de fonction cryptographique
    encryptOn(IPassWord, KeyWord)
    #Appel de fonction complexe
    OPassWord = encryptOff(KeyWord)
    print(OPassWord)
Quand vous regardez le code de référence pour la première fois, c'est compliqué ~ Comprenez-vous? J'ai pensé, mais c'est une logique étonnamment simple. Comme la clé et le vecteur sont simplement écrits directement, ils doivent être modifiés pour chaque cryptage.