المشاركات

عرض الرسائل ذات التصنيف java

MD5 en Java (2)

Este realmente me pareció el más óptimo para crear un resumen MD5. Lo encontré en www.gravatar.com . 1 import java.io.UnsupportedEncodingException; 2 import java.security.MessageDigest; 3 import java.security.NoSuchAlgorithmException; 4 5 public class MD5Util { 6 7 public static String hex( byte [] array) { 8 StringBuffer sb = new StringBuffer(); 9 for ( int i = 0; i < array.length; ++i) { 10 sb.append(Integer.toHexString((array[i] & 0xFF) | 0x100).substring(1, 3)); 11 } 12 return sb.toString(); 13 } 14 15 public static String md5Hex(String message) { 16 try { 17 MessageDigest md = 18 MessageDigest.getInstance( " MD5 " ); 19 return hex(md.digest(message.getBytes( " CP1252 " ))); 20 } catch (NoSuchAlgorithmException e) { 21 } catch (UnsupportedEncodingException e) { 22 } 23 ...

MD5 en Java

Estaba buscando en la red alguna función que permitira encriptar cadenas a MD5. Encontré de todo tipo. Pero el que pasó la prueba de rigor fue este ejemplo: http://paquesepas.wordpress.com/2008/07/09/md5-hexadecimal-hashing-en-java/ En resumen, el código final es este: private static final char [] HEXADECIMAL = { '0' , '1' , '2' , '3' , '4' , '5' , '6' , '7' , '8' , '9' , 'a' , 'b' , 'c' , 'd' , 'e' , 'f' } ; public String hash ( String stringToHash ) { try { MessageDigest md = MessageDigest.getInstance ( "MD5" ) ; byte [] bytes = md.digest ( stringToHash.getBytes ()) ; StringBuilder sb = new StringBuilder ( 2 * bytes.length ) ; for ( int i = 0 ; i < bytes.length; i++ ) { int low = ( int )( bytes [ i ] & 0x0f ) ; int high = ( int )(( bytes [ i...

Guardar imágenes en base de datos usando JPA

Hay infinidad de ejemplos de cómo guardar una imagen a base de datos con JDBC, y cómo recuperarla. Pues esta vez mostraré un ejemplo usando JPA. Supongamos que nuestra clase entidad tiene una propiedad llamada imagen que es donde se guardará la imagen. Esta propiedad debe declararse así: @Lob @Column(name = "imagen") private byte[] imagen; Para guardar una imagen (supongamos una que esté en el disco), debemos realizar lo siguiente: Entidad i = new Entidad(); // nuestra entidad File f = new File("D:/Imagen006.jpg"); //asociamos el archivo fisico InputStream is = new FileInputStream(f); //lo abrimos. Lo importante es que sea un InputStream byte[] buffer = new byte[(int) f.length()]; //creamos el buffer int readers = is.read(buffer); //leemos el archivo al buffer i.setImagen(buffer); //lo guardamos en la entidad em.persist(i); //y lo colocamos en el EntityManager Ahora, para recuperar el contenido haremos que se muestre el contenido en un JFrame: Enti...

Aprendiendo sobre Alcances de variables de Sesión en JSF

صورة
(Versión Wiki: http://wiki.netbeans.org/AprendiendoSobreAlcancesJSF ) Introducción Sabemos que es un dolor de cabeza usar las variables de sesión a través de los objetos HttpSession y HttpRequest. No sabemos si una variable está en nivel de sesión o en nivel de request, simplemente lo ponemos y lo usamos, aunque después nos pueden dar problemas a lo largo de la aplicación Pero al usar JSF esto se hará mucho más sencillo. JSF nos permite utilizar tres tipos de alcances: Aplicación: Una variable guardada en este alcance es visible durante toda la aplicación, hasta que se repliegue la aplicación o hasta que se detenga el servidor. Sesión: Una variable guardada a nivel de sesión, puede ser visible durante el tiempo de vida del usuario en la aplicación, hasta que se invalide la sesión. Request : Una variable en nivel request dura solo hasta la siguiente página, Una página 1, guarda la variable en nivel request y redirecciona la petición a la página 2. La página 2 la utiliza, y el objet...

Convirtiendo Date a String / String a Date

Podemos convertir un objeto fecha a String de varias maneras. Cada manera es un tipo de formato establecido por el JVM instalado en nuestro computador. Consideremos este ejemplo: Date d1 = new Date(); DateFormat[] dfa = new DateFormat[6]; dfa[0] = DateFormat.getInstance(); dfa[1] = DateFormat.getDateInstance(); dfa[2] = DateFormat.getDateInstance(DateFormat.SHORT); dfa[3] = DateFormat.getDateInstance(DateFormat.MEDIUM); dfa[4] = DateFormat.getDateInstance(DateFormat.LONG); dfa[5] = DateFormat.getDateInstance(DateFormat.FULL); for (DateFormat df : dfa) { System.out.println(df.format(d1)); } En mi caso, el resultado es: 09/02/09 10:29 AM 09/02/2009 09/02/09 09/02/2009 9 de febrero de 2009 lunes 9 de febrero de 2009 Notemos el resultado del formato obtenido por DateFormat.getInstance() . Es toda la fecha en formato corto, además de la hora. Mientras que si obtenemos el formato con DateFormat.getDateInstance() la fecha se muestra en formato medio (Podemos consultar la configuració...

Base de datos relacionales en Java: HSQLDB y Apache Derby (Parte 1)

صورة
Hola a todos comenzaré este año con un post que quizás para algunos sea aburrido. Base de datos relacionales 100% Java. Ojo, no estoy diciendo que sean bases de datos orientados a objetos. Eso es otro tema. Sino, que son bases de datos relacionales (esos de Entidad-relación, tuplas, relaciones, columnas, claves foráneas, etc.) cuyo motor está hecho en Java. Por tanto, si queremos modificar algo de su funcionamiento, pues encontraremos el código en Java. No en C, ni C++, ni C#, sino en Java. Sabemos que los drivers de tipo 4 de JDBC se conectan directamente a la base de datos usando protocolos de red en java puro. Entonces, podemos suponer que usando bases de datos en java con jdbc en java, la conexión es mucho más directa, y se accede a los datos sin intermediarios. Bueno, es solo una suposición personal. En este post comentaré de dos RBDMS en Java muy conocidos y usados: HSQLDB y Apache Derby . Haremos ejemplos usando NetBeans 6.5, aunque también funcionará en NetBeans 6.1. Comenzar...

Documentación de Hibernate en Español

Gonzalo Díaz ha terminado la traducción de la documentación de Hibernate al español Aquí se encuentra el link http://hibernar.org/documentacion_es/documentacion.php Vaya que ha sido un gran trabajo Felicitaciones a Gonzalo por su gran aporte para la comunidad . Si seguimos así, podemos hacernos del dominio de la documentación en español :)

Cambiar ícono a un JFrame

صورة
Un visitante de mi blog me pidió que le dijera cómo cambiar el ícono de los JFrame. Pero como este tip puede ser útil para toda la comunidad, decidí escribirlo aquí en mi blog. Paso 1 El ícono debe ser una imagen de extensión PNG. Esto se hace más fácil, ya que conseguir una figura y convertirlo en formato .ico es muy complicado. Los PNG nos ayudan bastante. Paso 2 La imagen que será el ícono debe estar dentro del paquete de fuentes, como si fuera una clase más. Si estuviera dentro de un paquete, sería mucho mejor. Paso 3 En el código del JFrame que vamos a poner el ícono, sobreescribimos el método  getIconImage()  conteniendo el siguiente código: (notar cómo se está llamando a la imagen .png) @Override public Image getIconImage() { Image retValue = Toolkit.getDefaultToolkit(). getImage(ClassLoader.getSystemResource("resources/icono.png")); return retValue; } Paso 4 En la vista de diseño del JFrame, lo seleccionamos y vamos sus propiedades, busca...

Reportes en NetBeans 6.1 con iReport/JasperReports y Visual Web JavaServer Faces

صورة
[Este tutorial también se encuentra en los tutoriales en Español de NetBeans. Ya que es un Wiki, se puede tener el tutorial actualizado] Introducción Microsoft tiene su Visual Studio , Java tiene a NetBeans . Microsoft tiene su Crystal Reports , Java tiene JasperReports . Java no tiene nada qué envidiar a Visual Studio. Ni menos en los reportes. JasperReports es un framework bastante completo para desarrollar reportes tanto web como desktop en Java. Aunque el formato fuente de un reporte en JasperReports es un archivo XML, existe una herramienta que permite crear un reporte de manera visual. Su nombre: iReport. Pero como estamos usando como IDE a NetBeans, podemos elaborar nuestro reporte sin salir del IDE. Para ello, existe un plugin (archivo .nbm) para NetBeans que muestra el iReport dentro del mismo IDE. http://downloads.sourceforge.net/ireport/iReport-nb-0.9.2.nbm Instalando el plugin Después de descargar el archivo .nbm, abrimos el IDE NetBeans. Entramos al...

Autenticación con LDAP en ActiveDirectory

صورة
ActiveDirectory es un servicio de Windows Server que mantiene información de la red tales como los usuarios registrados, los equipos conectados, etc. Soporta el protocolo LDAP, por lo que este consistirá en hacer una simple clase que permita autenticar un usuario y una contraseña utilizando el ActiveDirectory. Si estamos haciendo una aplicación que necesite un inicio de sesión, convendría mejor que el usuario usara el mismo nombre de usuario y contraseña que utiliza cuando trabaja en red. Un ejemplo simple de autenticación con LDAP se encuentra aquí LDAP Autentication . Obteniendo la configuración del dominio de red En una red windows existe el servidor que contiene toda la información de la red. Este se llama "Servidor de Dominio". Debemos consultar con nuestro administrador de red cuál es el nombre de este equipo para hacer nuestra aplicación. Para nuestro ejemplo, nuestro servidor de red se llamará spdom01 . Necesitamos, además, saber cuáles son las cadenas de utiliza ...