Este método de cifrado se divide en tres partes:
1. Determine el contenido del diálogo de configuración en función de los resultados de búsqueda para el registro.
2. Si lo usa por primera vez, establezca una nueva contraseña;
3. Un applet de transformación de contraseña (mucho más complicado que el original). Por supuesto, si necesita modificar la función de contraseña, simplemente cambie la parte de configuración de contraseña.
1. Cuando se inicia el programa, busque el registro para determinar si hay una contraseña para determinar el contenido de visualización de la ventana. Sin embargo, la siguiente declaración debe hacerse antes de usar:
Agregue Tregistry al usuario y agregue las siguientes variables de formulario a la Declaración VAR:
Esto: Tregisny;
KeyName, Valuestr, tempttr: string;
Procedimiento tFrmPass.FormShow (remitente: tobject);
Comenzar
Esto: = Tregistry.create;
Pruebe esto.
KeyName: = ′ Software/MyPassword ′;
// Si esta clave está disponible, se abrirá;
if a esto
TEMPRATR: = ExtractFileName (Application.exename);
Valuestr: = shatg.ReadString (tempttr);
// Si la contraseña no está vacía, modifique el formulario para verificar la contraseña
Si valuestr <> '' entonces comience
edit2.Visible: = false;
edit1.setfocus;
// Si la contraseña está vacía, modifique el formulario para establecer el cuadro de diálogo Contraseña
De lo contrario, comience
showMessage ('Establezca contraseña por primera vez!');
edit2.visible: = true;
edit1.setfocus;
fin;
Finalmente, libre;
2. El código de respuesta del botón: incluye la nueva contraseña y la contraseña de verificación.
procedimiento tFrmPass.okClick (remitente: tobject);
Comenzar
// juzga la contraseña existente en función de si Edit2 se muestra o no, y verifique
Si edit22.Visible = false entonces comience
if pase (edit1.Text) = Valuestren
showMessage ('¡La contraseña es correcta!')
De lo contrario, comience
showMessage ('¡La contraseña es incorrecta! ¡Sin permiso para operar!');
detenerse;
De lo contrario, comience
Si edit1.text = edit2.Text, entonces comience
Esto: = Tregistry.create;
Esto.
KeyName: = ′ Software/MyPassword ′;
Si está mismo.
Thatg.writeString (tempttr, pass (edit1.text));
Esto
De lo contrario, comience
showMessage ('La contraseña escrita nuevamente es inconsistente, ¡vuelva a ingresar!');
edit1.Text: = ′ ′;
edit1.setfocus;
fin;
3. Programa de conversión de contraseña: tenga cuidado de definir.
En mi opinión, este mini programa de transformación no es muy complicado. Los lectores también pueden usar otras funciones matemáticas para realizar transformaciones más complejas.
función pass (pstr: string): string;
var str, str1: string;
I, J: entero;
Comenzar
str: = pstr;
para i: = 1 a longitud (str) comience
// Por favor el primer cambio
J: = (I * I * I mod (i + 20))+(i * I mod (i + 10))+i * 2 + 1;
str1: = str1+chr (ord (str [i])+j);
J: = (I * I * I mod (i + 10))+(i * i mod (i + 20))+i * 2 + 1;
str1: = str1+chr (ord (str [i])+j);
pase: = str1;
fin;