Fungsi RND() dari VISUALBASIC memiliki fitur penting: ketika parameter RND() (kita dapat menyebutnya sebagai seed di sini) bernilai negatif, seed yang sama (nilai negatif) menghasilkan urutan angka acak yang sama. Pada saat yang sama, VISUALBASIC juga memiliki fungsi teknologi biner yang kuat, sehingga kita dapat mencapai enkripsi konten file sesuai dengan ide berikut:
X=RND(-KUNCI)
'KEY adalah angka positif
VAULE=INT(256*RND)'Buat nomor acak (gunakan ini sebagai kata sandi)
OpenFILENAME$ForBinaryAs#FILENUM'Buka file
Dapatkan#FILENUM,I,A'Dapatkan konten file
B=AXORVAULE'dapatkan file terenkripsi
menggabungkan
C=BXORVAULE' mendapatkan file yang didekripsi (B adalah konten file yang dienkripsi)
Catatan: A di sini bukan keseluruhan isi file, bisa berupa bagian yang sangat kecil, beberapa byte atau bahkan satu byte. Jika itu adalah satu byte, setiap byte dalam file akan di-XOR dengan nomor yang berbeda, membuatnya sulit diuraikan. Seberapa besar. Proses spesifik:
Parameter SubENDECODE(FILENAME$,MA,FILE2$) adalah: file sumber, kata sandi, file target
DimFILENUMAsInteger,XAsSingle,IAsSingle
DimCHARNUMAsInteger,RANDOMINTEGERAsInteger
DimSINGLECHARAsString*1,filen2AsInteger' membutuhkan satu byte
JikaMA<0Mereka
MA=MA*(-1)
AkhirJika
Parameter X=Rnd(-MA) negatif
FILENUM=File Gratis
OpenFILENAME$ForBinaryAs#FILENUM'file sumber terbuka dalam mode biner
filen2=File Gratis
OpenFILE2$ForOutputAs#filen2'Buka file target dalam file berurutan
ForI=1ToLOF(FILENUM)'LOF() panjang file dalam byte
Dapatkan#FILENUM,I,SINGLECHAR'Dapatkan konten byte tunggal
CHARNUM=Asc(CHARN TUNGGAL)
RANDOMINTEGER=Int(256*Rnd)'Dapatkan alfabetnya
CHARNUM=CHARNUXatauRANDOMINTEGER'XOR
PRint#filen2,Chr$(CHARNUM);'Tulis ke file target
selanjutnyaSaya
TutupFILENUM
Tutup filen2
ok' memanggil kotak dialog sukses
Sub Akhir
Format panggilan: nama file sumber ENDECODE, kata sandi, nama file target
Proses di atas dapat mengenkripsi dan mendekripsi file EXE, COM, teks, dan lainnya (jumlah waktu enkripsi ganjil, jumlah waktu dekripsi genap), dengan reproduktifitas yang sangat baik dan kerahasiaan yang sangat baik. Jika proses di atas diproses lebih lanjut, seperti pemrosesan acak berganda , Kemudian akan naik ke level yang lebih tinggi, yang tidak akan saya ulangi di sini.
Omong-omong, jika proses di atas juga membuka dan menulis file target sebagai file biner, maka hanya teks Barat murni yang dapat dienkripsi dan didekripsi. Untuk teks berbahasa Mandarin murni, teks tersebut dimodifikasi menjadi byte ganda dan ukuran langkah I adalah 2. Implementasi, lainnya (teks gabungan Cina dan Barat, EXE, COM, dan file lainnya) tidak akan mendapatkan hasil yang diharapkan. Alasannya mungkin karena karakter dengan ASCII lebih besar dari 127 tidak dapat ditampilkan secara normal, dan file tidak dapat ditulis secara normal dengan. pernyataan put (hanya spasi), bagi yang berminat mungkin ingin mencobanya.
->