aca te mando las fuentes de un hash
##################################
#Comienzo Programa Principal
##################################
if __name__ == '__main__':
"******************************************************************"
print "Funciones de hash"
"******************************************************************"
DEBUG = False
gen_primo=raw_input('Desea Generar p y q (s/n)? ')
if gen_primo=='s':
if DEBUG: print "; - trying new possible prime"
if DEBUG: print ". - failed to find a composite witness for this
trial"
bits = 200
n=1
no_encontre=True
while no_encontre:
print "Corrida:%s. Buscando primo q de %s bits" %(n,bits)
q=generate_prime(bits)
print "q=%s (es primo!)" % q
p=(2*q)+1
print "p=%s (sera primo?)" % p
k = 2*bits
no_es_primo=False;
for i in xrange(k):
test = random.randrange(2, p-1)|1
if RabinMillerWitness(test,p):
no_es_primo=True;
if not no_es_primo:
print "p es primo :-)"
no_encontre=False
else:
print "p no es primo :-("
n=n+1
else:
q=1246734992325385966744231289934339834544534600730623100834261
p=2493469984650771933488462579868679669089069201461246201668523
# Ya tengo p y q
#Calculo de alfa y beta
n=p*q
good = 0
print "---------------------------------------------------------------"
print "Ya tengo los primos p y q!"
print "p=%s" % p
print "q=%s" % q
print "Calculamos alpha y beta"
while not good:
possible = random.randrange(1, p-1)
if powmod(possible,2,p-1)!=1:
if powmod(possible,q,p-1)!=1:
good=1
alpha=possible
print "alpha=%s" % alpha
good=0
while not good:
possible = random.randrange(1, p-1)
if powmod(possible,2,p-1)!=1:
if powmod(possible,q,p-1)!=1:
good=1
beta=possible
print "beta=%s" % beta
si=True
while si:
x1=int(raw_input('Ingrese valor numerico de x1: '))
x2=int(raw_input('Ingrese valor numerico de x2: '))
print "Aplicando funcion de hash"
#Calculo de Funcion de Hash
h=powmod(alpha,x1,p)*powmod(beta,x2,p)
print "hash=%s" % h
continuar=raw_input('Desea calcular el hash para un nuevo par (x1,x2)
(s/n)? ')
if continuar=='n':
si=False
print "Gracias por queridos conejos!"
rcristiuy <rcristiuy@...> escribió:
Alguien sabe que es la funcion hash; yo tengo que es lo siguiente: h:X-
>Z que transforma una cadena de longitud arbitraria (x)en otra cadena
(z) de longitud constante (n)llamada digesto. Este efecto hace
imposible la inversion de h, por lo que no existe un metodo eficaz y
deterministico para obtener x a partir de z.
Alguien tiene otra definicion ????
Desde ya muchas gracias.
Rafael
Compartí video en la ventana de tus mensajes y también tus fotos de Flickr.
Usá el Nuevo Yahoo! Messenger versión Beta.
Visitá http://ar.beta.messenger.yahoo.com/