Frage

Ich kämpfe darum, vollständig zu verstehen, wie die Verschlüsselung funktioniert, und ist insbesondere mit Python codiert. Ich versuche nur, die Grundlagen niederzuschlagen und Code in einfachster Form zu erstellen.

Ich werde eine Benutzer -ID zwischen zwei verschiedenen Websites bestehen, aber natürlich muss ich dies mit einem privaten Schlüssel verschlüsselt werden, sodass Website2 weiß, dass es von Website1 stammt. Dies scheint der Code für mich zu sein:http://docs.python.org/library/hashlib.html#module-hashlib, aber es hat keine sehr guten Beispiele (oder vielleicht bin ich an der falschen Stelle).

Das Problem, das ich habe, ist das vollständige Verständnis, wie ich codieren und dekodieren kann.

Nehmen wir also an, der gemeinsame private Schlüssel, den jede Website kennt, lautet:

shared_private_key = "ABCDEF"

Und ich möchte, dass Website1 an Website2 übergeben wird. Die BenutzerID von:

userID = "123456"

Wie würde Website1 meine BenutzerID mit dem privaten Schlüssel in einer Weise verschlüsseln, dass die Verschlüsselung über HTTP -Headers gesendet werden kann, und dann die Website2 entschlüsselt und die BenutzerID mit dem freigegebenen privaten Schlüssel lesen können?

Ich entschuldige mich dafür, dass ich eine so grundlegende Frage gestellt habe, aber ich kann nicht verstehen, wie dies getan werden soll. Vielen Dank.

War es hilfreich?

Lösung

Das hashlib Das Modul bietet Hashing -Funktionen. Während es einen gewissen Verhältnis zur Verschlüsselung gibt, können Sie nach einigen Daten nicht zurückkehren, um die ursprünglichen Daten aus dem Hash -Ergebnis zu erhalten.

Anstatt die Daten zu erforschen, können Sie einen anderen Ansatz verfolgen: Erstellen einer eindeutigen Signatur mit einem Hash der Daten und einiger Geheimnisse.

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)

Schließlich senden Sie an die Website 2 die Daten plus die Signatur. Auf diese Weise können Sie (meistens) sicher sein, dass keine nicht autorisierte Person die Daten manipuliert hat.

Andere Tipps

Was Sie wollen, ist eine Verschlüsselungsbibliothek, die nicht nur Hash -Algorithmen bietet. Mit Python hashlib Bibliothek:

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

Kehrt zurück: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12

Angesichts dieses Hashs ist es extrem schwierig unmöglich (im Allgemeinen), die ursprüngliche Nachricht wiederherzustellen. Was Sie wollen, ist eine Verschlüsselungsbibliothek, die die Python Standard Library nicht hat. Es gibt genügend von Fragen zu Python -Kryptographie -Bibliotheken Das könnte hilfreich sein.

Die Python -Standardbibliothek hat keine Verschlüsselungsalgorithmen. Versuchen Pycrypto, Es hat einige Beispiele hier.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top