Die RND()-Funktion von VISUALBASIC hat eine wichtige Funktion: Wenn der Parameter von RND() (wir können ihn hier als Startwert bezeichnen) ein negativer Wert ist, erzeugt derselbe Startwert (negativer Wert) dieselbe Zufallszahlenfolge. Gleichzeitig verfügt VISUALBASIC auch über leistungsstarke binäre Technologiefunktionen, sodass wir die Dateiinhaltsverschlüsselung gemäß den folgenden Ideen erreichen können:
X=RND(-KEY)
„KEY ist eine positive Zahl
VAULE=INT(256*RND)'Generiere eine Zufallszahl (verwende diese als Passwort)
OpenFILENAME$ForBinaryAs#FILENUM'Datei öffnen
Get#FILENUM,I,A'Dateiinhalt abrufen
B=AXORVAULE'verschlüsselte Datei abrufen
kombinieren
C=BXORVAULE' ruft die entschlüsselte Datei ab (B ist der Inhalt der verschlüsselten Datei)
Hinweis: Hier handelt es sich nicht um den gesamten Dateiinhalt, sondern um einen sehr kleinen Teil, ein paar Bytes oder sogar ein einzelnes Byte. Wenn es sich um ein einzelnes Byte handelt, wird jedes Byte in der Datei mit einer anderen Zahl XOR-verknüpft schwer zu entziffern. Wie groß. Spezifischer Prozess:
Die Parameter von SubENDECODE(FILENAME$,MA,FILE2$) sind: Quelldatei, Passwort, Zieldatei
DimFILENUMAsInteger,XAsSingle,IAsSingle
DimCHARNUMAsInteger,RANDOMINTEGERAsInteger
DimSINGLECHARAsString*1,filen2AsInteger' benötigt ein einzelnes Byte
IfMA<0Them
MA=MA*(-1)
EndIf
Der Parameter „X=Rnd(-MA)“ ist negativ
FILENUM=FreeFile
OpenFILENAME$ForBinaryAs#FILENUM'Open-Source-Datei im Binärmodus
filen2=FreeFile
OpenFILE2$ForOutputAs#filen2'Öffnen Sie die Zieldatei in einer sequentiellen Datei
ForI=1ToLOF(FILENUM)'LOF() Dateilänge in Bytes
Get#FILENUM,I,SINGLECHAR'Einzelbyte-Inhalt abrufen
CHARNUM=Asc(SINGLECHAR)
RANDOMINTEGER=Int(256*Rnd)'Hol dir das Alphabet
CHARNUM=CHARNUMXorRANDOMINTEGER'XOR
PRint#filen2,Chr$(CHARNUM);'In Zieldatei schreiben
WeiterIch
CloseFILENUM
Closefilen2
„ok“ ruft das Erfolgsdialogfeld auf
EndSub
Aufrufformat: ENDECODE-Quelldateiname, Passwort, Zieldateiname
Der obige Prozess kann alle EXE-, COM-, Text- und anderen Dateien (ungerade Anzahl von Verschlüsselungsvorgängen, gerade Anzahl von Entschlüsselungsvorgängen) verschlüsseln und entschlüsseln, mit ausgezeichneter Reproduzierbarkeit und ausgezeichneter Vertraulichkeit, wenn der obige Prozess weiterverarbeitet wird, beispielsweise durch mehrfache Zufallsverarbeitung , Dann geht es auf eine höhere Ebene, was ich hier nicht wiederholen werde.
Übrigens, wenn der obige Prozess auch die Zieldatei als Binärdatei öffnet und schreibt, kann nur reiner westlicher Text verschlüsselt und entschlüsselt werden. Für reinen chinesischen Text wird er so geändert, dass er Doppelbytes annimmt und die Schrittgröße I beträgt 2. Die Implementierung anderer (chinesischer und westlicher kombinierter Text, EXE-, COM- und andere Dateien) führt möglicherweise nicht zu den erwarteten Ergebnissen. Der Grund dafür kann sein, dass Zeichen mit ASCII größer als 127 nicht normal angezeigt werden können und die Datei nicht normal geschrieben werden kann Wenn Sie die Put-Anweisung (nur das Leerzeichen) verwenden, möchten Interessierte es vielleicht einmal ausprobieren.
->