Autor
|
Tema: Varios modos de poner contraseñas (Leído 8,156 veces)
|
Meta
|
Hola: Ahora aprovecho usar el Visual C# Express 2010 beta 2 para hacer pruebas de todo tipo, entre ellas aprender. Se trata de introducir en el formulario Form1, un button1 y un textbox1. En el lograr que al introducir la contraseña correcta muestra un mensaje contraseña CORRECTA o INCORRECTA. Por ahora solo he hecho esto y funciona: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Contraseña01 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == "1234") { MessageBox.Show("Contraseña CORRECTA", "Aviso:"); } else { MessageBox.Show("Contraseña INCORRECTA", "Aviso:"); } } } }
Está claro si uno se para a pensar que la contraseña guardada no está guardada realmente, sino dentro del programa ya compilado (que hay métodos para descompilar y todo). Lo ideal es crear una forma que se pueda guardar la contraseña en algún lado (por ahora sin cifrar) para recuperarla y compararla. Se que hay varios tipos de formas de guardar, de .txt, xml y demás. Me gustaría saber cual es la mejor forma. Más adelante ya nos meteremos formas de encriptarla. Sólo necesito ayuda de cómo hacer y cuál es el método recomendable para guardar la contraseña y que la pueda cambiar. Saludo.
|
|
« Última modificación: 16 Noviembre 2009, 18:18 pm por Meta »
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
Puedes hacer uso de algún algoritmo de cifrado de un solo sentido, como SHA-1 por citar un ejemplo :http://msdn.microsoft.com/es-es/library/system.security.cryptography.sha1%28VS.80%29.aspx Pondrías la contraseña cifrada, ej: e04fd22963b74df3692cc3ed99c10bf81e5d2534, y luego en la verificación, recibes el valor "Contraseña" y lo encriptas, y si es igual al hash almacenado, entonces esta ok Saludos P.D: he puesto sha-1 porque era el conversor que tenía a mano XD
|
|
« Última modificación: 16 Noviembre 2009, 18:44 pm por Novlucker »
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
Meta
|
Gracias. Por lo que veo, mejor usar una base de datos. Descargar: MySQL 5.1.40Connector .netVer manual página 437 sobre Visual C# y MySQL. Luego pongo avances que he hecho con imágnes paso a paso. Saludo.
|
|
|
En línea
|
|
|
|
Meta
|
He hecho esto. Agruegué un button nuevo llamado button_crear_db, para que se cree la base de datos y tabla con un valor vacío. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using MySql.Data.MySqlClient; // No olvidar aquí. using MySql.Data.Types; namespace Contraseña01 { public partial class Form1 : Form { MySqlConnection connection = null; // No olvidar. string MyConString; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { if (textBox1.Text == "1234") { MessageBox.Show("Contraseña CORRECTA", "Aviso:", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("Contraseña INCORRECTA", "Aviso:", MessageBoxButtons.OK, MessageBoxIcon.Stop); } } // Con este botón se crea l base de datos y tabla para la contraseña. private void button_crear_db_Click(object sender, EventArgs e) { string MyConString = "SERVER=127.0.0.1;" + "PORT=3306;" + "UID=root;" + "PASSWORD=1234;"; string tabla = @"CREATE TABLE `guardar` ( `password` varchar(20) NOT NULL, PRIMARY KEY (`password`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;"; connection = new MySqlConnection (MyConString ); connection.Open(); MySqlCommand con = new MySqlCommand (tabla, connection ); con.ExecuteNonQuery(); } } }
¿Cómo comparo la contraseña y que me diga CORRECTO o INCORRECTO? Salu2.
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
AAAAAAAhhh!, pero ahí la contraseña sigue estando en texto plano, en una bbdd pero en texto plano, pensé que ibas a utilizar una tabla con user/password (cifrado). ¿Cual es la ventaja de hacer eso? ¿No hay ningún problema? Estas en la misma pero con un archivo de unos 2Mb adicionales ¿Cómo comparo la contraseña y que me diga CORRECTO o INCORRECTO? Consultas la tabla y comparas contra valor, aunque como digo .. sigues en la misma
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
Meta
|
Lo se que está en plano. Pero primero debo hacer funcionar bien el programa antes de meterme en la cifrado.
|
|
|
En línea
|
|
|
|
Novlucker
Ninja y
Colaborador
Desconectado
Mensajes: 10.683
Yo que tu lo pienso dos veces
|
ok .. pero vas a manejar muchas contraseñas? porque sino no tiene sentido tener una bbdd para una o unas pocas.
Y para leer eso ... sqldatareader
Saludos
|
|
|
En línea
|
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD "Hay dos cosas infinitas: el Universo y la estupidez humana. Y de la primera no estoy muy seguro." Albert Einstein
|
|
|
seba123neo
|
el mismo mysql o el sql server ya tienen fucniones para cifrar contraseñas a travez de una clave dada ,podes probar eso.
|
|
|
En línea
|
|
|
|
KJD
Desconectado
Mensajes: 314
|
Perdon que reviva un post medio viejo, pero mas alla de que la contaseña este cifrada o no, que SHA1, MD5 y cualquier otro algoritmo, todo se resume a el salto que te dice contraseña Buena // Mala. Si ya se que me van a decir, si la contraseña esta cifrada no podran tener el programa full, si lo se, pero el problema es que al poder decompilarce, poeds modificar el programa como si fuese tuyo.
Saludos.
|
|
|
En línea
|
"Solo hay 10 tipos personas que saben leer binario, los que si y los que no"
"Keyboard not Found, press F1 To Continue" WTF???
|
|
|
MANULOMM
Desconectado
Mensajes: 559
Erepublik.com
|
si aun asi se decompilara no obtendrias nunca la contraseña, si no quieres que lo modifiquen o por lo menos que no sea sencillo entonces Ofusca el codigo; es mas en el "mundo real" cuantos programas has decompilado tu para modificarlos y saltarte la seguridad?... es posible decompilarlo con el reflection (aunque sufre variaciones en codigo) es una tarea muy ardua copiar clase por clase y estudirse el programa para generar un nuevo exe.
Atentamente,
Juan Manuel Lombana Medellín - Colombia
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Como poner varios dns en interfaces
Redes
|
mic827
|
1
|
3,018
|
21 Julio 2011, 20:31 pm
por madpitbull_99
|
|
|
Poner tweets de varios usuarios en un widgets
« 1 2 »
Desarrollo Web
|
Crash_RPM
|
10
|
6,962
|
23 Mayo 2012, 10:04 am
por Psyke1
|
|
|
Publican varios modos de piratear juegos en la tienda de aplicaciones de Windows
Noticias
|
wolfbcn
|
0
|
2,130
|
13 Diciembre 2012, 22:23 pm
por wolfbcn
|
|
|
Modos de instalar Wasap en el PC, wasap for pc
Software
|
free-articles
|
0
|
1,506
|
19 Agosto 2013, 05:03 am
por free-articles
|
|
|
Poner varios números y que los separe
.NET (C#, VB.NET, ASP)
|
SlayerBur
|
6
|
4,099
|
28 Mayo 2017, 20:45 pm
por SlayerBur
|
|