Metode enkripsi ini dibagi menjadi tiga bagian:
1. Tentukan konten dialog pengaturan berdasarkan hasil pencarian untuk registri.
2. Jika Anda menggunakannya untuk pertama kalinya, atur kata sandi baru;
3. Applet transformasi kata sandi (jauh lebih rumit dari yang asli). Tentu saja, jika Anda perlu memodifikasi fungsi kata sandi, cukup ubah bagian pengaturan kata sandi.
1. Ketika program dimulai, cari registri untuk menentukan apakah ada kata sandi untuk menentukan konten tampilan jendela. Namun, pernyataan berikut harus dibuat sebelum digunakan:
Tambahkan Tregistry ke Pengguna dan tambahkan variabel formulir berikut ke Deklarasi VAR:
Itu: Tregistry;
Keyname, Valuestr, Tempstr: String;
Prosedur TFRMPASS.FORMSHOW (Pengirim: Tobject);
Mulai
Itu: = Tregistry.create;
Cobalah tHERG.ROOTKEY: = HKEY - LOCAL - MACHINE;
KeyName: = ′ Software/MyPassword ′;
// Jika kunci ini tersedia, itu akan dibuka; jika tidak ada, itu akan dibuat.
Jika thuh.
Tempstr: = ExtractFileName (Application.exename);
Valuestr: = thender.readstring (tempstr);
// Jika kata sandi tidak kosong, ubah formulir untuk memverifikasi kata sandi
Jika Valuestr <> '' maka mulailah
Edit2.visible: = false;
Edit1.setFocus; OK.Caption: = ′ Tentukan ';
// Jika kata sandi kosong, ubah formulir untuk mengatur kotak dialog kata sandi
lagi mulai
Showmessage (′ Harap atur kata sandi untuk pertama kalinya! ′);
Edit2.visible: = true;
Edit1.setFocus; OK.Caption: = 'Set';
akhir;
Akhirnya akhir;
2. Kode respons tombol: Termasuk kata sandi baru dan kata sandi verifikasi.
Prosedur tfrMpass.okclick (pengirim: TOBJEK);
Mulai
// menilai kata sandi yang ada berdasarkan apakah edit2 ditampilkan atau tidak, dan verifikasi
jika edit2.visible = false maka mulailah
if pass (edit1.text) = valuestr kemudian mulailah
Showmessage ('Kata sandi benar!');
lagi mulai
Showmessage ('Kata sandi salah! Tidak ada izin untuk beroperasi!');
berhenti;
lagi mulai
jika edit1.text = edit2.text lalu mulailah
Itu: = Tregistry.create;
Therg.rootkey: = Hkey - Local - Machine;
KeyName: = ′ Software/MyPassword ′;
Jika thender.openkey (keyname, true) lalu
Therg.writeString (Tempstr, Pass (Edit1.Text));
Tentunya
lagi mulai
Showmessage ('Kata sandi yang diketik lagi tidak konsisten, mohon masukkan kembali!');
edit1.text: = ′ ′; edit2.text: = ′ ′;
edit1.setfocus;
akhir;
3. Program Konversi Kata Sandi: Hati-hati untuk ditentukan sebelumnya.
Menurut pendapat saya, program mini transformasi ini tidak terlalu rumit. Pembaca juga dapat menggunakan fungsi matematika lainnya untuk melakukan transformasi yang lebih kompleks.
function pass (pstr: string): string;
var str, str1: string;
I, J: Integer;
Mulai
str: = pstr;
untuk i: = 1 hingga panjang (str) Mulai
// tolong perubahan pertama
j: = (i * i * i mod (i + 20))+(i * i mod (i + 10))+i * 2 + 1;
str1: = str1+chr (ord (str [i])+j); // transformasi kedua
j: = (i * i * i mod (i + 10))+(i * i mod (i + 20))+i * 2 + 1;
str1: = str1+chr (ord (str [i])+j);
lulus: = str1;
akhir;