Encriptar cadena de texto con SHA1

publicado por: Anonymous

Tengo el siguiente código en Java:

import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;

public class EnconderPass {

public static void main(String[] args) {
    String password = "12345";
    byte[] newPassword = null;
    try {
        newPassword = MessageDigest.getInstance("SHA").digest(password.getBytes("UTF-8"));
    } catch (NoSuchAlgorithmException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    String encriptado = Base64.getEncoder().encodeToString(newPassword);
    System.out.println(encriptado);

}

}

Quiero reproducir los mismos resultados con Python 3, pero no se como “traducirlo”. En este ejemplo Java la cadena 1235 equivale a jLIjfQZ5yojbZGTqxg2pY0VROWQ=

¿Cómo podría hacerlo en Python 3?

solución

Básicamente son dos bibliotecas a usar, hashlib y base64. Lo básico sería:

import hashlib
import base64


password = "12345"
newpassword = hashlib.sha1(password.encode()).digest()
encriptado = base64.b64encode(newpassword).decode('UTF-8')
print(encriptado)

Salida:

jLIjfQZ5yojbZGTqxg2pY0VROWQ=


Solo queda meterlo en una clase y manejar las excepciones con un try-except si quieres una traducción “literal”.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *