A função RND() do VISUALBASIC possui uma característica importante: quando o parâmetro de RND() (podemos chamá-lo de semente aqui) é um valor negativo, a mesma semente (valor negativo) gera a mesma sequência de números aleatórios. Ao mesmo tempo, VISUALBASIC também possui poderosas funções de tecnologia binária, para que possamos alcançar a criptografia do conteúdo do arquivo de acordo com as seguintes ideias:
X=RND(-CHAVE)
'KEY é um número positivo
VAULE=INT(256*RND)'Gere um número aleatório (use isso como senha)
OpenFILENAME$ForBinaryAs#FILENUM'abrir arquivo
Get#FILENUM,I,A'Obtém o conteúdo do arquivo
B=AXORVAULE'obtém arquivo criptografado
combinar
C=BXORVAULE' obtém o arquivo descriptografado (B é o conteúdo do arquivo criptografado)
Nota: Aqui não é todo o conteúdo do arquivo, pode ser uma parte muito pequena, alguns bytes ou até mesmo um único byte. Se for um único byte, cada byte do arquivo será XOR com um número diferente, tornando-o. difícil de decifrar. Quão grande. Processo específico:
Os parâmetros SubENDECODE(FILENAME$,MA,FILE2$)' são: arquivo de origem, senha, arquivo de destino
DimFILENUMAsInteger,XAsSingle,IAsSingle
DimCHARNUAsInteger,RANDOMINTEGERAsInteger
DimSINGLECHARASString*1,filen2AsInteger' ocupa um único byte
SeMA<0Eles
MA=MA*(-1)
FimSe
O parâmetro X=Rnd(-MA)'é negativo
FILENUM=Arquivo Grátis
OpenFILENAME$ForBinaryAs#FILENUM'arquivo de código aberto em modo binário
filen2=Arquivo Grátis
OpenFILE2$ForOutputAs#filen2'Abre o arquivo de destino em um arquivo sequencial
ForI=1ToLOF(FILENUM)'LOF() comprimento do arquivo em bytes
Get#FILENUM,I,SINGLECHAR'Obtém conteúdo de byte único
CHARNUM=Asc(SINGLECHAR)
RANDOMINTEGER=Int(256*Rnd)'Obter o alfabeto
CHARNUM=CHARNUMXouRANDOMINTEGER'XOR
PRint#filen2,Chr$(CHARNUM);'Escrever no arquivo de destino
PróximoEu
FecharFILENUM
Fechar arquivo2
ok' chama a caixa de diálogo de sucesso
Fim Sub
Formato de chamada: nome do arquivo de origem ENDECODE, senha, nome do arquivo de destino
O processo acima pode criptografar e descriptografar qualquer arquivo EXE, COM, texto e outros arquivos (número ímpar de tempos de criptografia, número par de tempos de descriptografia), com excelente reprodutibilidade e excelente confidencialidade se o processo acima for processado posteriormente, como processamento aleatório múltiplo. , Aí vai para um nível superior, que não vou repetir aqui.
A propósito, se o processo acima também abrir e gravar o arquivo de destino como um arquivo binário, então apenas texto ocidental puro poderá ser criptografado e descriptografado. Para texto chinês puro, ele será modificado para receber bytes duplos e o tamanho do passo de I será. 2. Implementação, outros (texto combinado chinês e ocidental, EXE, COM e outros arquivos) não obterão os resultados esperados. O motivo pode ser que caracteres com ASCII maiores que 127 não possam ser exibidos normalmente e o arquivo não possa ser gravado normalmente. a instrução put (o resultado é apenas um espaço), aqueles que estiverem interessados podem tentar.
->