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

Bibliothèques tierces Python Discussion :

Equivalence entre commande Linux et GNUPG encrypt_file [Python 3.X]


Sujet :

Bibliothèques tierces Python

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Retraité de l'Informatique
    Inscrit en
    août 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité de l'Informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : août 2019
    Messages : 9
    Points : 9
    Points
    9
    Par défaut Equivalence entre commande Linux et GNUPG encrypt_file
    Bonjour,

    Je développe un programme python qui crypte un fichier json.
    En shell Linux la commande est toute simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    gpg  --batch --yes  --passphrase MonMotDePasse --symmetric --output fichier.gpg fichier.json
    Mais en Python là je tourne en rond (ce qui suit est un bout de code à la volée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    G = gnupg.GPG(gnupghome='/home/user/.gnupg')
    F=open('fichier.json','rb')
    status=G.encrypt_file(F,recipients=['moi@email.com'],output='fichier.gpg')
    F.close()
    Mon répertoire de clés est bon, je l'utile pour décrypter (en python).
    Je ne sais pas du tout à quoi sert le recipients ??? En shell je ne l'ai jamais utilisé (je pense).
    Quand je lance il ne me met pas d'erreur mais le status me dit"pas de données".

    PS: évidemment je mets des données valides pour user MonMotDePasse et moi@email.com !

    Any idea ?

  2. #2
    Futur Membre du Club
    Homme Profil pro
    Retraité de l'Informatique
    Inscrit en
    août 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité de l'Informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : août 2019
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Bonsoir,
    Je pense avoir avancé sur la solution...
    A la lecture de ce post, j'y ai vu que l'option symmetric nécessitait le paramètre de recipients à None.
    Ainsi, avec la syntaxe suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    status=G.encrypt_file(F,symmetric='AES256',recipients=None,passphrase='MonMotDePasse',output='fichier.gpg')
    un fichier crypté semble être produit.
    À voir si par la suite il est utilisable mais là... il se fait tard.
    À demain peut-être

  3. #3
    Modérateur

    Homme Profil pro
    Architecte technique
    Inscrit en
    juin 2008
    Messages
    14 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Industrie

    Informations forums :
    Inscription : juin 2008
    Messages : 14 489
    Points : 24 509
    Points
    24 509
    Par défaut
    Salut,

    Citation Envoyé par Vangeles Voir le message
    Je pense avoir avancé sur la solution...
    A la lecture de ce post, j'y ai vu que l'option symmetric nécessitait le paramètre de recipients à None.
    python-gnupg rend accessible au programmeur Python les fonctionnalités de gnupg... et suppose connaitre gnupg. Le bon document pour apprendre/savoir comment çà fonctionne et comment l'utiliser est celui ci.

    Vous y trouverez tout ce qu'il faut savoir pour faire la différence entre chiffrement symétrique et chiffrement avec clef publique (et pourquoi il y a un recipient dans un cas et pas dans l'autre).

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Retraité de l'Informatique
    Inscrit en
    août 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité de l'Informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : août 2019
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par wiztricks Voir le message
    Salut,
    ....pour apprendre/savoir comment çà fonctionne et comment l'utiliser est celui ci....
    - W
    Bonjour,
    Merci pour le lien, même si ça m'oblige à revoir un peu mon anglais.
    J'avais tout récemment trouvé aussi un sujet connexe sur la cryptographie (introduction).
    Avec ces deux références je devrais pouvoir m'en sortir et surtout (comme toujours) essayer de comprendre.
    Je mettrai ce sujet à résolu quand j'aurai réglé mon programme de test (aujourd'hui sûrement) pour ensuite regarder les liens sur les cours et tutoriaux que vous proposez en signature.
    Cordialement.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Retraité de l'Informatique
    Inscrit en
    août 2019
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité de l'Informatique
    Secteur : Associations - ONG

    Informations forums :
    Inscription : août 2019
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    Mon programme de test (encrypt puis decrypt)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    import gnupg
    G = gnupg.GPG(gnupghome='/home/user/.gnupg')
    with open('totp.json','rb') as F:
    	status=G.encrypt_file(F,symmetric='AES256',recipients=None,output='totp.gpg')
    F.close()
    print(status.ok)
    input("Suite...")
    with open('totp.gpg','rb') as F:
    	status=G.decrypt_file(F,output='totp.txt')
    F.close()
    print(status.ok)
    Les deux fichiers totp.json et totp.txt sont bien identiques.
    Ne pas mettre de mot de passe (passphrase) oblige à le demander (c'est mieux).

    Voilà, je clos

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 12/10/2012, 21h32
  2. Réponses: 6
    Dernier message: 29/03/2007, 18h46
  3. Réponses: 2
    Dernier message: 11/07/2003, 19h24
  4. Réponses: 2
    Dernier message: 24/06/2003, 21h31
  5. [Kylix] Commandes linux ss kylix
    Par csnickos dans le forum EDI
    Réponses: 3
    Dernier message: 15/09/2002, 21h24

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