IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

crypt et decrypt données dans un fichier ini


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 69
    Par défaut
    Je ne sais pas comment cela se fait, mais en cherchant sur internet, j'ai trouvé le post suivant : https://stackoverflow.com/questions/...-byte-encoding

    Et j'ai comme suggérer fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    import chardet
     
    ...
     
    the_encoding = chardet.detect(currentUserBytes)
    print (the_encoding)
    Et voici l'ouput :

    {'encoding': 'KOI8-R', 'confidence': 0.3199873848173409, 'language': 'Russian'}
    C'est un peu n'importe quoi :-(

  2. #2
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Citation Envoyé par cormnsa
    C'est un peu n'importe quoi
    Certes, en même temps ce n'est sûr qu'à 32%...

    Ne connaissant pas ce module je peux guère vous aidez plus, peut-être testé avec decode() (sans paramètre d'encoding).

    Je vous conseille de regarder à nouveau la documentation et de faire des petits tests (ils devraient être quand à eux fonctionnels), car vous envoyez des petits bouts de code non testables et qui ne me permet pas de vous aider.

  3. #3
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 69
    Par défaut
    Vus que c'est un programme annexe à un programme java, j'ai fais une recherche et j'ai trouvé ceci : https://stackoverflow.com/questions/...java-to-python

    Déjà, j'ai trouvé une erreur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cipher = AES.new(encoded_passphrase, AES.MODE_EAX)
    j'ai changé et je suis passé à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cipher = AES.new(encoded_passphrase, AES.MODE_ECB)
    Et il y a du progrès dans le sens que maintenant, quand j'affiche la valeur bytes, j'ai la bonne valeur, mais il y a des \x08\x08\x08\x08\x08\x08\x08\x08 en plus et donc la conversion en str ne fonctionne pas.
    Mais je continue à chercher...

    merci pour l'aide

  4. #4
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 69
    Par défaut
    Est-ce que quelqu'un connait du java ici, comme cela je pourrais mettre mon code de cryptage et decryptage java (sauf si la modération n'est pas d'accord) ?

    Il y a un truc qui bloque, mais je sais pas quoi.

  5. #5
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 69
    Par défaut
    Après quelques recherche, j'ai trouvé :

    Voici le code (sans la passphrase ) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    encoded_passphrase = passphrase.encode("utf8")
     
    cipher = AES.new(encoded_passphrase, AES.MODE_ECB)
     
    # with open(filename, "w", encoding="utf8") as config_file:
     
    # Read Data
    config = configparser.ConfigParser()
    config.read(filename, 'ascii')
     
    # Reading Data
    keys = ["server", "port", "user", "password"]
    for key in keys:
    	value = config.get("database", key)
    	if key == "server":
    		currentHost = value
    	if key == "port":
    		currentPort = value
    	if key == "user":
    		enc = base64.b64decode(value)
    		currentUserBytes = unpad(cipher.decrypt(enc),16)
    	if key == "password":
    		enc = base64.b64decode(value)
    		currentPasswordBytes = unpad(cipher.decrypt(enc),16)
     
    currentUser = currentUserBytes.decode()
    currentPassword = currentPasswordBytes.decode();
     
    #ASK User for modify data (ENTER keep current value)
    sBuffer = input("Hostname ("+currentHost+"): ")
    if sBuffer == "":
    	databaseHost = currentHost
    else:
    	databaseHost = sBuffer
     
    sBuffer = input("Port ("+currentPort+"): ")
    if sBuffer == "":
    	databasePort = currentPort
    else:
    	databasePort = sBuffer
     
    sBuffer = input("Utilisateur ("+currentUser+"): ")
    if sBuffer == "":
    	databaseUser = currentUser
    else:
    	databaseUser = sBuffer
     
    sBuffer = input("Mot de passe : ")
    if sBuffer == "" :
    	databasePassword = currentPassword
    else:
    	databasePassword = sBuffer
     
    config.set("database", "server", databaseHost)
    config.set("database", "port", databasePort)
     
    encryptedUser = base64.standard_b64encode(cipher.encrypt(pad(databaseUser.encode(),16)))
     
    encryptedPassword = base64.standard_b64encode(cipher.encrypt(pad(databasePassword.encode(),16)))
     
    # print(encryptedUser)
     
    config.set("database", "user",encryptedUser.decode())
    config.set("database", "password", encryptedPassword.decode())
     
    with open(filename, "w") as config_file:
        config.write(config_file)

  6. #6
    Membre confirmé
    Homme Profil pro
    dev. full stack
    Inscrit en
    Octobre 2016
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : dev. full stack
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Octobre 2016
    Messages : 69
    Par défaut
    Question suivante : où stocker la passphrase.
    Actuellement, elle est en dure dans le fichier .py, mais cela me convient.

    Je lis comme suggestion:
    • d'utiliser un autre fichier .py et de faire un import, mais est-ce vraiment une bonne idée ?
    • de faire un fichier ini et d'utiliser configparser
    • d'utiliser un fichier json

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. récupéré un code crypté dans un fichier .ini
    Par FracMaster dans le forum Langage
    Réponses: 2
    Dernier message: 27/04/2007, 12h49
  2. Réponses: 8
    Dernier message: 18/07/2005, 14h04
  3. Unicité de nom de clés dans un fichier .INI
    Par The_Warlord dans le forum Langage
    Réponses: 8
    Dernier message: 11/11/2004, 12h16
  4. lire le point-virgule dans un fichier .ini
    Par juflata dans le forum Langages de programmation
    Réponses: 3
    Dernier message: 05/07/2004, 12h46
  5. [VB6] Api pour supprimer dans un fichier INI
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 20/02/2003, 08h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo