La fonction RND() de VISUALBASIC a une fonctionnalité importante : lorsque le paramètre de RND() (on peut l'appeler ici une graine) est une valeur négative, la même graine (valeur négative) génère la même séquence de nombres aléatoires. En même temps, VISUALBASIC dispose également de puissantes fonctions de technologie binaire, afin que nous puissions réaliser le cryptage du contenu des fichiers selon les idées suivantes :
X=RND(-CLÉ)
'KEY est un nombre positif
VAULE=INT(256*RND)'Générer un nombre aléatoire (utilisez-le comme mot de passe)
OpenFILENAME$ForBinaryAs#FILENUM'Ouvrir le fichier
Get#FILENUM,I,A'Obtenir le contenu du fichier
B=AXORVAULE'récupère le fichier crypté
combiner
C=BXORVAULE' récupère le fichier déchiffré (B est le contenu du fichier crypté)
Remarque : A ici ne représente pas l'intégralité du contenu du fichier, il peut s'agir d'une très petite partie, de quelques octets ou même d'un seul octet, chaque octet du fichier sera XORé avec un numéro différent, ce qui le rendra. difficile à déchiffrer. Processus spécifique :
Les paramètres de SubENDECODE(FILENAME$,MA,FILE2$) sont : fichier source, mot de passe, fichier cible
DimFILENUMAsInteger,XAsSingle,IAsSingle
DimCHARNUMAsInteger,RANDOMINTEGERAsInteger
DimSINGLECHARAsString*1,filen2AsInteger' prend un seul octet
SiMA<0Eux
MA=MA*(-1)
FinSi
Le paramètre X=Rnd(-MA)' est négatif
FILENUM=Fichier Libre
OpenFILENAME$ForBinaryAs#FILENUM'fichier open source en mode binaire
filen2=FichierLibre
OpenFILE2$ForOutputAs#filen2'Ouvre le fichier cible dans un fichier séquentiel
ForI=1ToLOF(FILENUM)'LOF() longueur du fichier en octets
Get#FILENUM,I,SINGLECHAR'Obtenir du contenu sur un seul octet
CHARNUM=Asc(SINGLECHAR)
RANDOMINTEGER=Int(256*Rnd)'Obtenir l'alphabet
CHARNUM=CHARNUMXouRANDOMINTEGER'XOR
PRint#filen2,Chr$(CHARNUM);'Écrire dans le fichier cible
SuivantJe
FermerFILENUM
Fermer le fichier2
ok' appelle la boîte de dialogue de réussite
FinSub
Format d'appel : nom du fichier source ENDECODE, mot de passe, nom du fichier cible
Le processus ci-dessus peut crypter et décrypter n'importe quel fichier EXE, COM, texte et autres (nombre impair de fois de cryptage, nombre pair de fois de décryptage), avec une excellente reproductibilité et une excellente confidentialité si le processus ci-dessus est traité ultérieurement, comme un traitement aléatoire multiple. , Ensuite, cela passera à un niveau supérieur, ce que je ne répéterai pas ici.
À propos, si le processus ci-dessus ouvre et écrit également le fichier cible sous forme de fichier binaire, alors seul le texte occidental pur peut être crypté et déchiffré. Pour le texte chinois pur, il est modifié pour prendre des doubles octets et la taille de pas de I est. 2. L'implémentation, d'autres (texte combiné chinois et occidental, EXE, COM et autres fichiers) n'obtiendront pas les résultats attendus. La raison peut être que les caractères avec un ASCII supérieur à 127 ne peuvent pas être affichés normalement et que le fichier ne peut pas être écrit normalement avec. l'instruction put (uniquement l'espace), ceux qui sont intéressés voudront peut-être l'essayer.
->