Domanda

sto lottando per comprendere appieno come funziona la crittografia e viene codificata, in particolare con il pitone. Sto solo cercando di ottenere le basi verso il basso e creare codice nella forma più semplice.

ho intenzione di essere il superamento di un userID tra due siti diversi, ma ovviamente ho bisogno di questo per essere crittografato con una chiave privata in modo Website2 sa che è venuto da Website1. Questo sembra essere il codice per me: http://docs.python.org/library/hashlib.html#module-hashlib , ma che non si sono molto buoni esempi (o forse sono nel posto sbagliato).

Il problema che sto avendo è completamente capire come per codificare e decodificare.

Quindi, consente di dire che la chiave privata condivisa che ogni sito web saprà è:

shared_private_key = "ABCDEF"

E voglio Website1 di passare al Website2 l'userID di:

userID = "123456"

Come direbbe Website1 cifrare il mio ID utente con la chiave privata in un modo che la cifratura può essere inviato tramite intestazioni HTTP, e quindi avere Website2 decifrare ed essere in grado di leggere l'userID utilizzando la chiave privata condivisa?

mi scuso per chiedere una domanda così semplice, ma sto riuscendo a capire come questo dovrebbe essere fatto. Grazie.

È stato utile?

Soluzione

Il modulo hashlib fornisce funzioni di hashing. Mentre v'è una certa relazione con la crittografia, una volta che si hash alcuni dati non si può tornare indietro per ottenere i dati originali dal risultato hash.

Invece di encripting i dati che è possibile adottare un approccio diverso:. La creazione di una firma unica usando un hash dei dati e qualche segreto

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)

Infine, si invia al Sito 2 i dati più la firma. In questo modo si può essere (per lo più) in modo che nessuna persona non autorizzata manomesso i dati.

Altri suggerimenti

Ciò che si vuole è una libreria di crittografia non uno che fornisce solo algoritmi di hash. Con la libreria hashlib di Python:

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

Returns: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12

Dato questo hash, è estremamente difficile impossibile (in generale) per ripristinare il messaggio originale. Ciò che si vuole è una libreria di crittografia, che la libreria standard di Python non ha. Ci sono un sacco di domande relative al pitone crittografia librerie in modo che possa essere utile.

Python libreria standard non ha gli algoritmi di crittografia. Prova pycrypto , presenta alcuni esempi qui .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top