Question

J'ai du mal à comprendre comment fonctionne le chiffrement et est codé, en particulier avec python. Je suis juste essayer d'obtenir les bases vers le bas et créer un code dans la forme la plus simple.

Je vais être passer un userID entre deux sites différents, mais évidemment je besoin de ceci pour être chiffré avec une clé privée si WEBSITE2 sait venait de Website1. Cela semble être le code pour moi: http://docs.python.org/library/hashlib.html#module-hashlib , mais il ne dispose pas de très bons exemples (ou je suis peut-être au mauvais endroit).

Le problème que je vais avoir est de comprendre pleinement comment coder et décoder.

permet de dire que la clé privée partagée que chaque site saura est:

shared_private_key = "ABCDEF"

Et je veux Website1 passer à WEBSITE2 de l'ID utilisateur:

userID = "123456"

Comment serait Website1 Crypter mon userID avec la clé privée d'une manière que le cryptage peut être envoyé via HTTP en-têtes, et ensuite WEBSITE2 Décrypter et être en mesure de lire l'ID utilisateur en utilisant la clé privée partagée?

Je me excuse pour poser une telle question fondamentale, mais je ne pas comprendre comment cela doit être fait. Merci.

Était-ce utile?

La solution

Le module hashlib fournit des fonctions de hachage. Bien qu'il y ait une certaine relation avec le cryptage, une fois que vous hash des données que vous ne pouvez pas revenir en arrière pour obtenir les données d'origine à partir du résultat de hachage.

Au lieu de encripting les données que vous pouvez adopter une approche différente:. La création d'une signature unique en utilisant un hachage des données et un secret

shared_private_key = "ABCDEF"

def create_signature(data):
    return hashlib.sha1(repr(data) + "," + shared_private_key).hexdigest()

def verify_signature(data, signature):
    return signature == create_signature(data)

Enfin, vous envoyez au site 2 les données ainsi que la signature. De cette façon, vous pouvez être (la plupart du temps) vous qu'aucune personne non autorisée falsifié les données.

Autres conseils

Qu'est-ce que vous voulez est une bibliothèque de cryptage qui ne fournit que des algorithmes de hachage. Avec la bibliothèque de hashlib de python:

import hashlib
m = hashlib.sha1()
m.update("The quick brown fox jumps over the lazy dog")
print(m.hexdigest())

Renvoie: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12

Compte tenu de ce hachage, il est extrêmement difficile impossible (en général) pour récupérer le message d'origine. Ce que vous voulez est une bibliothèque de cryptage, que la bibliothèque standard Python n'a pas. Il y a beaucoup de python bibliothèques de cryptographie sur le SO qui pourrait être utile.

bibliothèque standard Python n'a pas des algorithmes de chiffrement. Essayez pycrypto , il a quelques exemples .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top