Un espacio, para la libertad.
Hay veces que al instalar el mysql, tenemos el problema de
Error
MySQL ha dicho:
#1045 - Access denied for user: 'user@localhost' (Using password: YES)
Si olvidamos la contrasena o de plano nunca la tuvimos y necesitamos logearnos en mysql. La solucion es la siguiente.
Primero hay que deterner el servidor de mysql
Despues iniciaremos el servidor en modo seguro, ignorando las tablas de permisos
/usr/bin/mysqld_safe --skip-grant-tables &
Con esto podemos entrar a mysq, le indicamos que la tabla a usar es mysql y ejecutamos una consulta que nos permitira cambiar la contrasena actual del usuario que necesitemos , despues de ejecutar la consulta, reiniciamos los privilegios, por ultimo salimos.
Y solo nos queda detener el de nuevo el servidoe de mysql y volverlo a iniciar
Esto lo he provado en ubuntu 7.4 y 7.10
Que tal pues seguimos con la saga, en esta parte veremos como hacer consultas desde la interfas grafica, empecemos.
Consultas a MySQL desde interfas grafica con NETBEANS.
Para empesar hay que crear un archivo nuevo, Formulario GUI JAVA > Formulario JFrame >

Despues le asignamos un nombre que en este caso sera CONSULTAS y le damos terminar.

Ya que tenemos nuestro JFrame vamos a garegar una caja de texto un boton y una tabla que es donde vamos a visualizar los resultados de la consulta, al final obtendremos algo asi.

Ahora, recordando la estructura de la base de datos que hemos estado usando, los campos que tenemos disponibles son los siguientes:
CREATE TABLE DATOS
(
NOMBRE VARCHAR(25),
TELEFONO VARCHAR(15),
CORREO VARCHAR(25),
TWITTER VARCHAR(30)
);
Los resultados que vamos a obtener de la consulta, los vamos a recibir en la tabla, por lo mismo la tabla debe de tener las mismas columnas, estas tablas no son tan dinamicas, como los arreglos en C o demas lenguajes, (o al menos no le he encontrado la forma : ) si saben se aceptan sugerencias ). Para modificar las propiedades de la tabla como columnas, filas, y tipos de datos que albergaran las columnas hay que seleccionar el objeto tabla, y dirigirse a la columna derecha, donde se encuantra la seccion de propiedades, ahi buscaremos el atributo de "MODEL", este atributo no tiene ningun valor, pero tiene un boton al final de campo con tres puntos [...], al dar click en el boton nos mostrara el menu, de la propiedades de la tabla.

En esta ventana modificaremos el nombre de las columnas que tiene la tabla segun sea el caso, y el tipo de datos que contendra la columna, lo podemos dejar como Object, pero lo cambiaremos a String. En la pestana de Valores predeterminados podremos ver una vista previa de la tabla, ademas de poder agregar columnas y filas con los botones que se encuentran en la parte inferior izquierda. Al termniar obtendremos esto:

Teniedo el formulario listo, empezaremos con la programacion de la consulta a mysql. Cambiaremos el nombre de la caja de texto para manejarlo mas facil, para nuestro caso se llamara txtNombre.
Agregaremos un evento al boton de tipo mouseReleased para hacer la consulta y ahi debe ir el siguiente codigo:
//Esta es la cadena a ejecutar en el servido de mysql se le pasa como parametro txtNombre, que es la caja de texto //donde se introduce el nombre a buscar, con el metodo getTex(), para obtener el texto introducido, y toStrin() para //convertir a String la cadena de la caja del texto.
String cadena="SELECT * FROM DATOS WHERE NOMBRE LIKE '%"+txtNobre.getText().toString()+"%';";
//No olvidar que las conexiones siempre se manejan dentro de try, para el manejo de excepciones de lo contrario siempre //les manejara un error aun que el codigo este bien
try
{
//Le indicamos el driver a usar
Class.forName("com.mysql.jdbc.Driver").newInstance();
//Le indicamos los datos correspondientes en la cadena de conexion, ip del servido, Base de datos usuario y pass
conexion=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/AGENDA","user","passwd");
sentencia=conexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY );
//Aqui ejecutamos la sentencia de la consulta
resultado=sentencia.executeQuery(cadena);
//Mientras la consulta arroje resultados va entrar al while
while(resultado.next())
{
//El for nos servira para ir recorriendo los datos que recojimos de la consulta, el contador comienza en uno (no en cero //como los areglos en C) el indice i nos servira para ir pasando de columna en columna, tanto en la tabla como en los //resultados de la consulta,el indice j sera para ir saltando de fila en fila despues de cada recorrido de columnas
for(i=1;i<=4;i++)
{
Tabla.setValueAt(resultado.getString(i),j,i-1);
}
j=j+1;
}
}
//Por ultimo el catch para manejar las excepciones si entra al catch mandaremos a imprimir la variable e que es donde se //guardara el mensaje de la excepcion
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"error: "+e);
}
Y aqui esta la prueba (Las etiquetas estan al reves pero nada de importancia :D).

Y listo espero les sirva de ayuda, comentarios, quejas o sujerencias ya saben a donde
Saludos
Despues de algun tiempo de la guerra de formatos, Toshiba decidio dejar de vender equipos de cómputo con reproductores de HD-DVD, con lo cual esta sufriendo perdidas millonarias, se estima que en Japón estas serán de 100 mil millones de yen, lo que son mil millones de dolares.
En esta ocación la guerra la decidio la consola de Sony, la PS3 la cual tiene en cualquiera de sus versiones un reproductor Blu-ray, así como los estudios Warner;en contraste, la Xbox 360 que solo cuenta con reproductor DVD, y el de HD-DVD se vende por separado, sin duda Microsoft tambien tendra pérdidas con esto.
Pueden leer la nota completa en: http://diarioti.com/gate/n.php?id=16970
La fiebre de Ubuntu invade todos los espacios conocidos y por conocer, ahora encontre un articulo en la revista Linux Users (publicacion argentina con distribución en México) un articulo sobre un amigo que distribuye Ubuntu en las estaciones del metro de la linea 2 del metro de esta gran y querida ciudad, les dejo el link de la web de este señor:
http://nimrodphoinix.wordpress.com/gnulinux/
Espero que no sea ni el primero ni el ultimo.
Pues son muy bien conocidas las vulnerabilidades de los modem 2WIRE, que distribuye TELMEX, con su servicio de internet de banda ancha (Infiernitum perdon) Infinitum, ademas de que en dos minutos puedes descifrar las claves WEP (encriptado que trae por default) que protegen el acceso al modem, los usuarios de la banca por Internet de Banamex, han presentado problemas por ataques de fishing, esto es que una vez que tienen acceso al modem, es facil modificar los DNS, para redireccionar, hacia donde uno quiera, las paginas deseadas, por consiguiente las paginas que se redireccionan son las de Banamex, hacia pagina clones donde solo esperan a que demos nuestro usuario y password para hacer movimientos dentro de nuestras cuentas (sin autorizacion de nosotros
).
Si tenemos problemas para acceder, nos muestra el error 404 o en su defecto otras paginas, hay que hacer lo siguiente, (Llamar a banamex para que desactiven la banca x internet de nuestra cuanta mientras nos aseguramos que todo esta en orden)
Ahora abrimos nuestro navegador de confianza (obvio firefox bueno el que gusten) y tecleamos en la barra de navegacion lo siguiente:
Que es la direccion de nuestro modem 2WIRE o bien
Habiendo hecho esto nos deberia de mostrar esto.
Ahora tenemos que entrar a la consola de administracion y diagnostico, para esto tecleamos despues de la direccion que esta en el navegador, suponiedo que hubieramos entrado con home tendriamos que tener algo asi
Si esta configurado nos pedira un password y al introducirlo deberemos ver esto
(Si no lo sabemos hay que dar click en "No recuerdo la contraseña" nos mostrara un recordatorio si aun asi no lo sabemos hay que dar click en "Todavia no recuerdo la contraseña" y nos mostrara un formulario para estblecer la nueva contraseña)
Ahoro hay que dar click en donde dice "Resolucion de DNS"
Nos mostrara una pagina, donde no deveremos tenar absolutamente nada en la lista de abajo si tenemos algo es por que fuimos vunerados en la seguridad.
Para solucionar, esto solo hay que dar click en el boton de "QUITAR", Y asunto solucionado.
Pero ahora, si ya pudieron entrar es por que conocen la WEP key, entonces debemos cambiar la contraseña, y activar el cifrado WPA, para evitar que esto vuelva a pasar.
Y esto se puede hacer cada ves que uno quiera hacer movimientos en la Banca por Internet, para verificar que nuestras operaciones son seguras. ; D
El motivo de que no se puedan reproducir DVD's originales es por que estos traen un codificado con CSS, para poder reproducir estos DVD's solo debes de ejecutar el siguiente comando para instalar, la libdvdcss2
Lo vi aqui
Insercion con interfas grafica.
En esta parte haremos una interfas grafica con netbeans que haga una conexion a MySQL, para realizar una insercion sencilla.
Abrimos el netbeans y lo primero que hay que hacer es un proyecto, nos abrira un formulario donde selecionaremos, de la categoria "GENERAL", proyectos "Aplicacion JAVA".

Daremos siguiente, y nos solicitara el nombre y ubicacion, a guardar del proyecto, el directorio por defecto es la carpeta raiz del usuario /home/user/ y el nombre que usaremos para este proyecto ser AGENDA.

Al dar siguiente nos mostrara el Main.java que es de donde mandaremos llamar a nuestros formularios mas adelante.

Para hacer la interfas grafica hay que agregar un Formulario Jframe, damos click en el boton de nuevo archivo y selecionaremos de la categoria, "Formularios GUI Java", el tipo de archivo "Formulari JFrame".

Con esto obtendremos un formulario, con barras y elementos muy similares a otros lenguages visuales, orientados a eventos.

Lo que haremos ahora es, es poner en el formulario los elementos que necesitaremos para nuestra interfas, en este caso seran etiquetas "JLabel", cajas simples de texto "JTextField" y un boton normal "JButton", que encontraremos en la Paleta, en el area SWING.

Para usarlos solo hay que arrastrarlos o selecionarlos y dar click donde queremos ponerlo.

Para editar el texto solo hay que selecionar y dar click, haremos lo mismo con los demas hasta obtener algo parecido.

Para hacer la conexion a MySQL desde netbeans hay que agregar el driver de conexion a la carpeta, jre\lib\ext, estas carpetas se encuentran en el path que nos indico netbeans al instalar, puede haber otras jdk con las mismas carpetas pero solo funcionara si lo pegamos en las que indico netbeans por ser las que el utiliza, de ahi la importancia de saber la ruta de la JDK, que usa netbeans.
Hay otras formas de cargar el driver pero esta, es la unica que me ha funcionado.

Si no modificaron las rutas de instalacion la ruta completa donde deven guardar el driver seria la siguiente
Y el driver a utilizar es mysql-connector-java-3.0.11-stable-bin. jar.
Para que sea mas facil, identificar los elementos del formulario le podemos cambiar el nombre, ya que no es muy agradable trabajar con los nombres les asigna por default, en la parte inferior izquierda, se encuentra el inspector, donde se encuentra en forma de arbol los elementos, para cambiar el nombre, selecionamos el elemento que deseamos y presionamos F2 para guardar el cambio hay que presionar ENTER, al selecionar el elemento en el inspector, se seleciona en el forrmulario, y viceversa.

La operacion a realizar es un simple insert, la cual se ejecutara al con el boton para esto le agregaremos un evento al boton de tipo "mouseReleased" para hacer esto selecionamos el boton y damos click con el boton derecho, del menu emergente segiremos la siguiente ruta, Eventos>Mouse>mouseReleased.
Nos mostrara el codigo del evento y nos indicara donde debe ir el codigo que queremos que se ejecute al activarse dicho evento.

Que sera el de la conexion e insercion, y es el siguiente.
sentencia=conexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY );
sentencia.execute(sql);
JOptionPane.showMessageDialog(null,"La informacion se guardo con exito.");
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"Error en la operacion: "+e);
}
Hay que incluir la siguientes librerias despues de la linea de
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.sql.*;
Tambien hay que declarar las siguientes variables despues del public class
Connection conexion;
Statement sentencia;
Obviamente hay que sustituir, los valores de la base de datos, el usuario y contrasena, segun corresponda.
En el siguiente post, haremos la consulta, desde la interfas grafica.
Saludos y espero o haya tenido muchas faltas de orrografia ;D
Para seguir con el how-to de Java y MySQL, es necesario que instalemos Neatbeans, que sera nuestro IDE de desarrollo, lo he probado un buen tiempo en Ubuntu y es muy bueno y estable, la instalacion es muy sencilla, ya que se puede descargar de la pagina un archivo binario, para la instalacion, pero antes debemos, instalar la maquina virtual y el JDK, empecemos Para instalar la maquina virtual y JDK de Java tecleamos lo siguiente.
Esto instalara la versio1.6.X.X. Ahora debemos obtener el binario de netbeans, este lo obtendremos directamente de la [pagina], escojemos el idioma hay una version en español por si no te entro mucho el ingles, la version indicada para nuestro S.O. y al bajar el paquete, hay que darle permisos de ejecusion.
Despues de esto solo hay que correrlo como cualquier otro binario
Y enseguida empesara a buscar la JVM, Si encuntra la JVM aparecera esta pantalla que es la primera del asistente.

Despues buscara el JDK, que es muy importate ubicar donde se encuentra, para poder agregar drivers de conexion a B.D. como MySQL, PostgreSQL, etc.

Despues, solo indicara el espacio a ocupar, e iniciara la copia de archivos.

Al terminar indicara la forma de ejecutar en forma manual, nosotros como somos muy flojos para teclear iremos al menu Aplicaciones » Programacion, y ahi encontraran Netbeans 5.5, en mi caso.

Y listo para empezar a programar con gui.
En vista al interes de muchos de mis amigos, en cuanto este tema, vamos a dar una pequeña reseña sobre la inseguridad del cifrado WEP, en las redes wireless.
Cabe mencionar que no nos hacemos responsables del mal uso que se le pueda dar a esta informacion y que lo unico que pretendemos es poner en evidencia la inseguridad que representa usar el cifrado WEP en las redes wireless, y que las pruebas que podamos efectuar, siempre sea dentro de redes en las cuales tengamos total concentimiento de sus administradores o propietarios, aclarado este punto continuemos con lo que nos interesa.
Esta informacion esta comprobada para las versiones 7.4 y 7.10, cuando instalamos ubuntu en nuestro equipo, por defecto instala la tarjeta de red con el modulo IPW394 (Intel ProWireless 3945 ABG), para poder hacer la auditoria, es necesario poder poner la tarjeta en modo monitor, lo cual no es posible con este modulo, por lo que es necario instalar los modulos IPWRAW
Antes de instalar el ipwraw debemos instalar algunas dependencias, esto lo hacemos de la siguiente forma
Aqui (uname -r), nos sirve para devolver la version del kernel que tenemos instalado, asi no tendremos problemas para instalar los paquetes que requerimos.
Si no hemos tenido ningun error hasta aqui, continuamos con la instalacion de ipwraw
descargamos las fuentes
Descomprimimos el paquete,
Para instalar, nos cambiamos a la carpeta que se acaba de generar, y tecleamos.
Con esto ya esta instalado el modulo, pero ahora lo agregaremos a la black list, esto para que no lo carge por defecto si no, solo cuando lo necesitemos.
Ya tenemos todo listo, para poder usar el ipwraw ahora solo hay desmontar el driver ipw3945 y cargar el ipwraw
sudo modprobe ipwraw
Para cargar el ipw3945, hacemos lo mismo, pero al contrario.
sudo modprobe ipw3945
Despues de montar y desmontar los driver's hay que esperar un poco para que se efectuen los cambios.
Para comprobar, que esten funcionando, tecleamos lo siguiente.
Y devemos obtener algo como esto.
eth0 no wireless extensions.
vmnet1 no wireless extensions.
vmnet8 no wireless extensions.
eth1 unassociated ESSID:off/any
Mode:Monitor Channel=1 Bit Rate=54 Mb/s
rtap0 no wireless extensions.
Tal vez puedas obtener wifi0 en lugar de eth1
Para efectuar la auditoria necesitaremos la suite aircrack si no la tenemos instalada lo hacemos con esto.
Listo, ahora empezaremos por averiguar cuales son los acces points accesibles
Y deberiamos obtener algo parecido a esto.
BSSID PWR Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
XX:XX:XX:XX:XX:XX 0 86 9 0 1 54. WEP WEP MAGI
BSSID STATION PWR Lost Packets Probes
Al identificar nustro objetivo debemos ejecutar el siguiente script para poder inyectar trafico.
Veremos algo asi
Empezamos a capturar los paquetes con el airodump-bg
Y deberiamos obteneralgo asi
BSSID PWR RXQ Beacons #Data, #/s CH MB ENC CIPHER AUTH ESSID
XX:XX:XX:XX:XX:XX 0 100 467 47 0 1 54. WEP WEP MAGI
BSSID STATION PWR Lost Packets Probes
Para poder inyectar necesitamos asociarnos con el acces point.
Ya que estamos asociados, podemos inyectar para poder generar DATA que son los paquetes que nos interesan
En unos cuantos segundos podemos ver como genero unos miles de DATA
Esperamos alrededor de 10 min para obtener una buena cantidad de DATA, el tiempo puede variar segun la distancia a la que te encuentres del acces point, no hay una cantidad exacta pero entre 200 300 mil DATA son suficientes segun lo comprobado.
Ahora solo hay que pasar el fichero por el aircrack
Y listo
[00:00:01] Tested 1 keys (got 552366 IVs)
KB depth byte(vote)
0 0/ 1 39( 100) 11( 33) D6( 15) 6C( 13) 6D( 12) 0D( 11) 17( 9) 95( 8) 5D( 5) 76( 5) 93( 5) D0( 5) 00( 4) 0C( 4) 3A( 3)
1 0/ 1 93( 100) 03( 37) 06( 31) 83( 19) 19( 13) 39( 12) B3( 12) D4( 12) 02( 11) CC( 8) FD( 7) 6C( 5) 86( 5) D2( 5) 30( 4)
2 0/ 1 19( 121) 1B( 15) CE( 12) EB( 12) 2C( 9) 41( 8) 82( 8) CD( 6) 00( 5) 15( 5) 1A( 5) 2B( 5) 34( 5) 39( 5) A2( 5)
3 0/ 1 94( 88) 18( 20) 78( 18) D8( 17) 19( 16) D0( 16) 0D( 10) 83( 9) 69( 8) 75( 6) 82( 6) A0( 6) 41( 5) 46( 5) A2( 5)
KEY FOUND! [ 39:93:19:94:35 ]
Decrypted correctly: 100%
Todo esto se puede hacer de forma mas simple, con el airoway.sh solo hay que editar la interfas de injecion segun sea nuestro caso, que puede ser wifi0 o eth1
Como podemos ver, el cifrado WEP no es suficiente para la proteccion de nuestra redes wireless, no exponga la integridad de su red, y utilecen WPA.
Espero le haya sido de utilidad.
Referencias:
http://aircrack-ng.org/doku.php?id=ipw3945
http://seguridadwireless.net
Como lo prometido es deuda aqui esta la segunda parte del mini tutorial de JAVA y MySQL ahora veremos la parte de la conexion a MySQL desde JAVA.
La Base de Datos
Para poder hacer la practica debemos crear la siguiente base de datos ya que la conexion hara referencia a los campos que estan aqui.
Para entrar en mysql, en la consola haremos lo siguiente
Ojo el usuario con el que vamos a entrar es con el que instalamos mysql, ya que es el que tiene configurado el password en mysql mas adelante veremos como asignar mas usuarios y passsword para mysql.
Una vez que nos haya pedido el password nos mostrara el promp de mysql algo asi:
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
Ahora teclearemos lo siguiente atencion de poner ; (punto y coma) al final de cada sentencia de lo contrario asumira que el comando aun continua.
USE AGENDA;
CREATE TABLE DATOS
(
NOMBRE VARCHAR(25),
TELEFONO VARCHAR(15),
CORREO VARCHAR(25),
TWITTER VARCHAR(30)
);
INSERT INTO DATOS VALUES('ALAN GASCA','57803747','blue.star.boy@gmail.com','www.twitter.com/yovany');
INSERT INTO DATOS VALUES('ALMA DELIA','26461263','almawook@yahoo.com','www.twitter.com/alma');
Con esto abremos creado una base de datos que se llama agenda, le indicamos que agenda es la base de datos donde vamos a trabajar, creamos una tabla que se llama datos e insertamos unos valores para poder ver los resultados de la practica.
Ahora vamos con JAVA
public class agenda
{
public String BD="AGENDA"; // ESTA VARIABLE GUARDA EL NOMBRE DE LA BASE DE DATOS A LA QUE NOS VAMOS A CONECTAR
public String consulta="SELECT * FROM DATOS";// ESTA GUARDA LA CONSULTA SQL QUE SE VA A EJECUTAR EN LA BD
public String USUARIO="mi_usuario";
public String PASS="mi_paswd";
public Connection conexion=null; // LAS VARIABLES PARA PODER GENERAR LA CONEXION A LA BD
public Statement sentencia=null;
public ResultSet resultado=null;
public agenda()
{
try
{
//LE INDICAMOS A JAVA CUAL ES EL DRIVER QUE VAMOS A UTILIZAR
Class.forName("com.mysql.jdbc.Driver").newInstance();
//ESTA ES NUESTRA CADENA DE CONEXION LE INDICAMOS CUAL ES LA SIRRCION IP DEL SERVIDOR DE MYSQL
//ADEMAS DE LA BASE DE DATOS A LA QUE SE VA A CONECTAR ASI COMO EL USUARIO Y PASSWORD
//RECUERDEN QUE ES EL USUARION CON EL QUE SE INSTALO MYSQL
conexion=DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/"+BD,USUARIO,PASS);
sentencia=conexion.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//ESTA VARIABLE ES LA QUE VA GUARDAR LOS RESULTADOS QUE GENERE LA CONSULTA
//EL EXECUTEQUERY ES EL METODO QUE EJECUTA LA CONSULTA
resultado=sentencia.executeQuery(consulta);
//SI LA CONSULTA RETORNA VALORES LA VARIABLE RESULTADO SE UBICARA UNA POCOSION
//ANTES DEL PRIMER VALOR, ENTONCES SI SE CUMPLE QUE EXISTA UN VALOR EN LA SIGUIENTE
//POCISION EN TRARA AL WHILE
while(resultado.next())
{
//Y SE IMPRIMIRAN LOS VALORES DE LA CONSULTA, QUE SE OBTIENEN CON GETSTRING, SE LE PUEDE PASAR EL NUMERO O NOMBRE DE LA COLUMNA DE LA TABLA
System.out.println(resultado.getString("NOMBRE")+" | "+resultado.getString("TELEFONO")+" | "+resultado.getString("CORREO")+" | "+resultado.getString("TWITTER"));
}System.out.println("Estos son los datos de la agenda... ");
//TODO ESTO DEVE SIEMPRE DE IR DENTRO DE UN TRY, DE LO CONTRARIO NOS MARCAR UN ERROR
}
catch(Exception error)
{
System.out.println("Error: "+error);
}
}
public static void main( String[] arg )
{
agenda miAgenda = new agenda();
}
}
Para probar el codigo debemos ejecutarlo de la siguiente manera, primero debemos cambiarnos a la carpeta donde esta ubicado el archivo agenda.java y tecleamos lo siguiente
Si no obtenemos ningun error, lo ejecutamos asi
Y obtendremos esto
Espero sea claro en la siguiente parte haremos una insercion y consulta con una interfas grafica, con netbeans, ojala les sea de utilidad.
Bienvenido, a vive-libre.com un espacio para la difusion del software libre, Ubuntu y todo lo relacionado con la cultura digital.
Comentarios recientes