Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Módulo com as funções hash
- import hashlib
- #Conteúdo com o qual os hashes serão gerados
- palavra = "Python"
- #Se a variável fosse declarada da seguinte forma não haveria necessidade de conversões para bytes
- #palavra = b"Python" #A letra b (BÊ minúsculo) indica que o conteúdo é do tipo bytes
- #É necessário converter a string para bytes, e o hexdigest deixa a impressão mais legível
- print("\nHashes:")
- print(" MD5:", hashlib.md5(palavra.encode()).hexdigest())
- print(" SHA1:", hashlib.sha1(palavra.encode()).hexdigest())
- print("SHA224:", hashlib.sha224(palavra.encode()).hexdigest())
- print("SHA256:", hashlib.sha256(palavra.encode()).hexdigest())
- print("SHA384:", hashlib.sha384(palavra.encode()).hexdigest())
- print("SHA512:", hashlib.sha512(palavra.encode()).hexdigest())
- #Tamanho dos blocos de hash, veja bem, é o tamanho do bloco com o qual o hash é gerado
- print("\nBlock size:")
- print(" MD5:", hashlib.md5(palavra.encode()).block_size)
- print(" SHA1:", hashlib.sha1(palavra.encode()).block_size)
- print("SHA224:", hashlib.sha224(palavra.encode()).block_size)
- print("SHA256:", hashlib.sha256(palavra.encode()).block_size)
- print("SHA384:", hashlib.sha384(palavra.encode()).block_size)
- print("SHA512:", hashlib.sha512(palavra.encode()).block_size)
- #Função para imprimir um hash com sal (tipo uma senha)
- #A função pbkdf2_hmac() recebe 4 argumentos:
- # 1- O nome do tipo de hash
- # 2- O conteúdo (convertido em bytes) com o qual será gerado o hash
- # 3- O sal (convertido em bytes) com o qual será gerado o hash
- # 4- E o número de vezes que o processo será repetido (tipo o hash do hash)
- # PS: Para visualizar melhor o resultado foi convertido com o hex(), pois pbkdf2_hmac não possui hexdigest()
- # Resumindo: hashlib.pbkdf2_hmac(NOME, PALAVRA, SAL, REPETIÇÕES).hex()
- print("\nHashes com sal:")
- print(" MD5 com sal:", hashlib.pbkdf2_hmac("md5", palavra.encode(), "salt".encode(), 100).hex())
- print(" SHA1 com sal:", hashlib.pbkdf2_hmac("sha1", palavra.encode(), "salt".encode(), 100).hex())
- print("SHA224 com sal:", hashlib.pbkdf2_hmac("sha224", palavra.encode(), "salt".encode(), 100).hex())
- print("SHA256 com sal:", hashlib.pbkdf2_hmac("sha256", palavra.encode(), "salt".encode(), 100).hex())
- print("SHA384 com sal:", hashlib.pbkdf2_hmac("sha384", palavra.encode(), "salt".encode(), 100).hex())
- print("SHA512 com sal:", hashlib.pbkdf2_hmac("sha512", palavra.encode(), "salt".encode(), 100).hex())
- #O nome do tipo de hash pode ser obtido da seguinte forma, em tese é o nome normal em letras minúsculas
- print("\nNomes dos tipos de hash:")
- print(" MD5:", hashlib.md5().name)
- print(" SHA1:", hashlib.sha1().name)
- print("SHA224:", hashlib.sha224().name)
- print("SHA256:", hashlib.sha256().name)
- print("SHA384:", hashlib.sha384().name)
- print("SHA512:", hashlib.sha512().name)
- input("\nAperte ENTER para sair...")
RAW Paste Data