Hola!
A ver, una dudilla con el tema de la encriptacion...He encontrado un codigo para realizar la encriptacion de un texto plano en sha1 y guardarlo en la base de datos trasformado a base64, lo que pasa que no me va y no se porque :(. Os pongo el codigo:
import java.io.UnsupportedEncodingException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import sun.misc.BASE64Encoder;
import sun.misc.CharacterEncoder;
public class SHA1BASE64 {
public SHA1BASE64() {
}
public static String encriptar(String textoplano) throws IllegalStateException {
MessageDigest md = null;
try {
md = MessageDigest.getInstance("SHA"); // Instancia de generador SHA-1
}
catch(NoSuchAlgorithmException e) {
throw new IllegalStateException(e.getMessage());
}
try {
md.update(textoplano.getBytes("UTF-8")); // Generación de resumen de mensaje
}
catch(UnsupportedEncodingException e) {
throw new IllegalStateException(e.getMessage());
}
byte raw[] = md.digest(); // Obtención del resumen de mensaje
String hash = (new BASE64Encoder()).encode(raw); // Traducción a BASE64
return hash;
}
}
Y para llamar a la funcion, lo hago asi:
SHA1BASE64 encrip = new SHA1BASE64();
String contras_encrip = encrip.encriptar(socio.getContrasenia());
El problema, es que al introducir los datos en el formulario y darle a enviar, me sale la siguiente excepcion en la linea correspondiente a SHA1BASE64 encrip = new SHA1BASE64():
java.lang.NullPointerException
Qué hago mal? :(