Функция RND() в VISUALBASIC имеет важную особенность: когда параметр RND() (здесь мы можем назвать его начальным числом) имеет отрицательное значение, то же самое начальное число (отрицательное значение) генерирует одну и ту же последовательность случайных чисел. В то же время VISUALBASIC также имеет мощные функции двоичной технологии, поэтому мы можем добиться шифрования содержимого файлов в соответствии со следующими идеями:
X=RND(-КЛЮЧ)
'KEY - положительное число
VAULE=INT(256*RND)'Сгенерировать случайное число (используйте его в качестве пароля)
OpenFILENAME$ForBinaryAs#FILENUM'открыть файл
Get#FILENUM,I,A'Получить содержимое файла
B=AXORVAULE'получить зашифрованный файл
объединить
C=BXORVAULE' получает расшифрованный файл (B — содержимое зашифрованного файла)
Примечание. Здесь представлено не все содержимое файла, это может быть очень небольшая часть, несколько байтов или даже один байт. Если это один байт, каждый байт в файле будет подвергнут операции XOR с другим числом, что сделает его. Трудно понять, насколько большой. Конкретный процесс:
Параметры SubENDECODE(FILENAME$,MA,FILE2$)': исходный файл, пароль, целевой файл.
DimFILENUMAsInteger, XAsSingle, IAsSingle
DimCHARNUMAsInteger,RANDOMINTEGERAsInteger
DimSINGLECHARasString*1,filen2AsInteger' принимает один байт
ЕслиMA<0Их
МА=МА*(-1)
КонецЕсли
Параметр X=Rnd(-MA)' отрицательный
FILENUM=Свободный файл
OpenFILENAME$ForBinaryAs#FILENUM'файл с открытым исходным кодом в двоичном режиме
filen2=Свободный файл
OpenFILE2$ForOutputAs#filen2'Открыть целевой файл в последовательном файле.
ForI=1ToLOF(FILENUM)'LOF() длина файла в байтах
Get#FILENUM,I,SINGLECHAR'Получить однобайтовое содержимое
CHARNUM=Asc(ОДИН СИМВОЛ)
RANDOMINTEGER=Int(256*Rnd)'Получить алфавит
CHARNUM=CHARNUMXorRANDOMINTEGER'XOR
PRint#filen2,Chr$(CHARNUM);'Запись в целевой файл
СледующийI
ЗакрытьFILENUM
Клозефилен2
ок' вызывает диалоговое окно успеха
EndSub
Формат вызова: имя исходного файла ENDECODE, пароль, имя целевого файла.
Вышеупомянутый процесс может шифровать и дешифровать любые EXE, COM, текстовые и другие файлы (нечетное количество раз шифрования, четное количество раз расшифровки) с отличной воспроизводимостью и превосходной конфиденциальностью, если описанный выше процесс будет дополнительно обработан, например, многократной случайной обработкой. , Потом оно перейдет на более высокий уровень, который я здесь повторять не буду.
Кстати, если описанный выше процесс также открывает и записывает целевой файл в виде двоичного файла, то можно зашифровать и расшифровать только чистый западный текст. Для чистого китайского текста он изменяется так, чтобы принимать двойные байты, а размер шага I равен. 2. Реализация других (китайский и западный комбинированный текст, EXE, COM и другие файлы) не даст ожидаемых результатов. Причина может заключаться в том, что символы с ASCII больше 127 не могут нормально отображаться, а файл не может быть нормально записан. оператор put (результат — просто пробел), те, кто заинтересован, могут попробовать.
->