Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2008, 06:25
evitasg
 
Fecha de Ingreso: marzo-2008
Mensajes: 42
Antigüedad: 16 años, 9 meses
Puntos: 0
Encriptacion de contraseñas con java

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? :(