Este método de criptografia é dividido em três partes:
1. Determine o conteúdo da caixa de diálogo de configuração com base nos resultados da pesquisa do registro.
2. Se você o usar pela primeira vez, defina uma nova senha;
3. Um applet de transformação de senha (muito mais complicado que o original). Obviamente, se você precisar modificar a função de senha, basta alterar a peça de configuração de senha.
1. Quando o programa começar, pesquise no registro para determinar se há uma senha para determinar o conteúdo da exibição da janela. No entanto, a seguinte declaração deve ser feita antes do uso:
Adicione o Tregistry ao usuário e adicione as seguintes variáveis de formulário à declaração VAR:
Aí: Tregistry;
Keyname, valuestr, tempstr: string;
Procedimento tfrmpass.formshow (remetente: tabjas);
Começar
Ayg: = Tregistry.create;
Tente ayg.rootkey: = hkey - local - machine;
Keyname: = ′ Software/MyPassword ';
// Se essa chave estiver disponível, ela será aberta;
Se
Tempstr: = ExtractFilename (Application.Exename);
ValuEstr: = oyg.readString (tempstr);
// Se a senha não estiver vazia, modifique o formulário para verificar a senha
Se Valuester <> '' então comece
edit2.Visible: = false;
edit1.setFocus;
// Se a senha estiver vazia, modifique o formulário para definir a caixa de diálogo Senha
mais começam
showMessage (', defina a senha pela primeira vez!');
edit2.Visible: = true;
edit1.setFocus;
fim;
Finalmente, o fim;
2. O código de resposta do botão: inclui a nova senha e a senha de verificação.
procedimento tfrmpass.okClick (remetente: tabjas);
Começar
// julga a senha existente com base se o edit2 é exibido ou não e verifique
se edit2.visible = false, então comece
se aprovar (edit1.text) = valuestr então inicie
showMessage ('A senha está correta!');
mais começam
showMessage ('A senha está incorreta! Sem permissão para operar!');
Halt;
mais começam
se edit1.text = edit2.text, então comece
Ayg: = Tregistry.create;
Ay.rootKey: = HKEY - Local - MACHINE;
Keyname: = ′ Software/MyPassword ';
Se
Atualmente (tempstr, pass (edit1.text));
Ay.closeKey;
mais começam
showMessage ('A senha digitada novamente é inconsistente, por favor, volte!');
edit1.text: = ′ ′;
edit1.setfocus;
fim;
3. Programa de conversão de senha: tenha cuidado com a predefinida.
Na minha opinião, esse mini -programa de transformação não é muito complicado. Os leitores também podem usar outras funções matemáticas para realizar transformações mais complexas.
função passa (pstr: string): string;
var str, str1: string;
I, J: Inteiro;
Começar
str: = pstr;
para i: = 1 a comprimento (str) começa
// por favor a primeira mudança
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);
passagem: = str1;
fim;