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 :

Comment importer des clés dans un fichier


Sujet :

Python

  1. #1
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut Comment importer des clés dans un fichier
    Bonjour,

    Je développe un fichier qui nécéssite des clés pour envoyer des données sur un serveur.
    Le probéème est que ce fichier je l'envoie sur github et évidement il ne faut pas que ces clés soient visibles.

    Je me demandais s'il était possible de créer un fichier ou je stocke ces valeurs qui seront importées dans mon fichier que j'enverrai sur git.

    Ce sont les données (engras) à ne pas partager

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    # TTN Device Address, 4 Bytes, MSB
    devaddr = bytearray([0x00, 0x00, 0x00, 0x00])
    # TTN Network Key, 16 Bytes, MSB
    nwkey = bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                       0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
    # TTN Application Key, 16 Bytess, MSB
    app = bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                     0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
    Est-ce possible de mettre dans un fichier keys.py
    devaddr = [0x00, 0x00, 0x00, 0x00]
    nwkey = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]
    app = [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]

    et que dans mon fichier je puisse faire une truc du genre

    # TTN Device Address, 4 Bytes, MSB
    devaddr = bytearray(%devaddr%)
    # TTN Network Key, 16 Bytes, MSB
    nwkey = bytearray(%nwkey%)
    # TTN Application Key, 16 Bytess, MSB
    app = bytearray(%app%)
    LEs %% "symbolisent" une valeur de variable

    Merciiis

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Salut,

    Citation Envoyé par pierrot10 Voir le message
    Est-ce possible de mettre dans un fichier keys.py
    Oui: keys.py s'appelle module et il peut être importé dans le script principal.
    Pour les détails, c'est ici.

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

  3. #3
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    en général ce que je fais c'est un fichier config.py que j'importe où j'en est besoin et si je dois partager le projet alors je fais un fichier config_example.py reproduisant la structure de mon fichier config mais en mettant des données factices / des placeholders que je peux transmettre.

    par exemple:
    config.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
     
    api_key = "abcdefgh"
    config_example.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
     
    api_key = "put your api key here"
    Comme l'a dit wiztricks après ce fichier "devient" un module, avec tout ce qui va avec, espace de nom, import, ect.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Bonjour
    Merci pour vos réponses.

    En fait, si j'ai bien compris, je crée un fichier

    conf.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import os
    ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
    devaddr = [0x76, 0x76, 0x76, 0x76]
    nwkey = [0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0xC7]
    app = [0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x6A]
    Puis dans mon fichier hello.py

    J'ajoute ceci
    Puis je peux affciher comme ceci

    Ce qui m'interpelle est que

    print(conf.app)

    m'affiche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 118, 106]
    Est-ce vraiment la même chose si je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    app = bytearray(conf.app)
    ?

    (je suis débutant en python3)

  5. #5
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    ça dépend de quoi vous avez besoin vous avez parlez de clef mais on n'en sais pas plus.

    le ROOT_PATH était à titre d'exemple et j'avais même oublié d'importer os
    si vous avez besoin d'un bytearray autant avoir un bytearray dès le début (dans votre conf.py)

    par contre il serait judicieux de savoir ce que sont ses clef et sous quelle forme le serveur les attends.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Hello,
    alors oui les clé c'est ceci, sous ce format
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    devaddr = [0x76, 0x76, 0x76, 0x76]
    nwkey = [0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0xC7]
    app = [0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x76, 0x6A]
    Les valeurs entre [] et y compris les [] doivent être intégré dans

    # TTN Device Address, 4 Bytes, MSB
    devaddr = bytearray([0x00, 0x00, 0x00, 0x00])
    # TTN Network Key, 16 Bytes, MSB
    nwkey = bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
    # TTN Application Key, 16 Bytess, MSB
    app = bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
    avec les []

  7. #7
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    que représente concrètementdevaddr ? pourquoi il vous faut des bytearray ?

    Il y a plein de façon d'écrire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
    mais si on ne sais pas pourquoi vous les utilisez difficile d'aller plus loin.

    Sans doute que votre code marche très bien mais est ce que vous utilisez des bytearray car le code a été porté vers Python 3 ou pour tout autre raison ? Il y a fort à parier que cela entraîne une dette technique dans pas très longtemps / complexité
    Autrement dit: pourquoi faire compliqué avec des bytearrays quand il y a surement plus simple ?

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Ben ce format m'est imposée par TTN. Ces données sont envoyés grâce à LoRaWAN

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    # TTN Device Address, 4 Bytes, MSB
    devaddr = bytearray([0x00, 0x00, 0x00, 0x00])
    # TTN Network Key, 16 Bytes, MSB
    nwkey = bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
    # TTN Application Key, 16 Bytess, MSB
    app = bytearray([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]) 
     
    # Initialize ThingsNetwork configuration
    ttn_config = TTN(devaddr, nwkey, app, country='EU')
    Je n'ai pas le choix, c'est comme cela que ca doit être présneté.

    Et je souhaite justement mettre ces clés dans un fichier externe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import os
    ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
    devaddr = [0x26, 0x01, 0x17, 0x67]
    nwkey = [0x9C, 0x23, 0xBD, 0x61, 0x77, 0x13, 0x9B, 0x44,0xF8, 0xF7, 0xBC, 0x8D, 0x62, 0x6B, 0x12, 0xC7]
    app = [0x81, 0xFD, 0xDC, 0x01, 0x76, 0x6A, 0xD1, 0x88,0x42, 0xB5, 0x75, 0xC8, 0xF6, 0xCD, 0x3F, 0x6A]
    Pour les récupérer dans mon fichier princiapl, voyez-vous?

  9. #9
    Membre chevronné
    Homme Profil pro
    BTS SN IR
    Inscrit en
    Mai 2017
    Messages
    514
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : BTS SN IR

    Informations forums :
    Inscription : Mai 2017
    Messages : 514
    Par défaut
    Ben ce format m'est imposée par TTN. Ces données sont envoyés grâce à LoRaWAN
    ce qui vous est imposé c'est ce que vous envoyez à la fin, pas la manière de le construire.

    Il serait plus judicieux de directement mettre les bytearray dans le fichier à importer (enfin si vous êtes obligez d'utiliser des bytearray)

  10. #10
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 167
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 167
    Par défaut
    Ha ben non, ca semble fonctionner
    Désolé


    dans mon fichier config.py
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    import os
    ROOT_PATH = os.path.dirname(os.path.abspath(__file__))
    devaddr = [0x67, 0x67, 0x67, 0x67]
    nwkey = [0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67]
    app = [0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67,0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67, 0x67]
    Dans mon fichier principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    # TTN Device Address, 4 Bytes, MSB
    devaddr = bytearray(config.devaddr)
    # TTN Network Key, 16 Bytes, MSB
    nwkey = bytearray(config.nwkey)
    # TTN Application Key, 16 Bytess, MSB
    app = bytearray(config.app)

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

Discussions similaires

  1. Comment stocker des tables dans un fichier XML ?
    Par TicTacToe dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 24/09/2006, 16h18
  2. Réponses: 7
    Dernier message: 23/01/2006, 11h53
  3. Réponses: 3
    Dernier message: 27/06/2005, 16h24
  4. [D6] Comment remplacer des chaînes dans un fichier ?
    Par fabien25 dans le forum Langage
    Réponses: 4
    Dernier message: 15/06/2005, 13h37
  5. Comment changer des mots dans un fichier?
    Par ptitbonum dans le forum Linux
    Réponses: 5
    Dernier message: 07/04/2004, 23h42

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