Calcular o SHA1 de uma string em Python é feito quase da mesma forma do calculo do md5 que eu já mostrei aqui antes.
A partir da versão do Python 2.5 a maneira correta de se fazer é assim:
import hashlib
print hashlib.sha1('Silveira').hexdigest()
Isso vai imprimir isto:
25e58a0147633e39c2a2fcceff9a13a181e672b9
Para fazer o calculo do MD5, também se usa a hashlib:
import hashlib
print hashlib.md5('Silveira').hexdigest()
Que vai nos dar o md5 da string ‘Silveira’:
43eb9e4547c642db6cd19713b5c1dff2
O módulo hashlib possui os contrutores md5(), sha1(), sha224(), sha256(), sha384(), e sha512(). Dependendo da implementação da OpenSSL que você tem instalada você poderá ganhar alguns outros construtores.
Maiores informações: documentação da hashlib
[…] 2º Vale indicar um outro blog do autor?Na minha última crise de abstinência blogueira, quando o EPTM ficou fora do ar, eu meio que por acaso comprei esse domÃnio só para deixar um currÃculo, depois decidi deixar um pequeno blog.É o Blog do Silveira, onde quase diariamente eu livro os leitores do EPTM de artigos sobre como fazer um programa em MPI ou como fazer um algoritmo SHA1 de criptografia em Python. […]
Anotei suas dicas no meus favoritos do ma.gnolia.com, algo verdadeiramente útil.
Só uma dúvida:
No linux eu aplico md5 direto em um device, tipo:
md5sum /dev/cdrom
No RWindows tem como fazer usando essa bibliotecaw?
Excelente post.
Realmente muito útil.
Sou amante de PHP por sua simplicidade, e vi que python tende a ser simples tambem.
A cada dia que estudo mais linguagens diferentes mais perco o interesse pela linguagem que eu mais gostumava amar Java.
Valeu!
Infelizmente o meu código não funcionou.
Dá o erro “Unicode-objects must be encoded before hashing”
import hashlib
print hashlib.md5(b’Silveira’).hexdigest()
adicione “b†antes da string
Cara, me ajuda caso eu queira que ele faça a tradução de uma variável e não da uma string direto. Exemplo:
teste = “teste123”
print hashlib.md5(teste).hexdigest()
Poderia ser assim?