Red de conocimiento informático - Conocimiento del nombre de dominio - Cómo escribir un programa de cifrado de archivos usando VB

Cómo escribir un programa de cifrado de archivos usando VB

El método de cifrado de clasificación inversa byte a bit es un método de cifrado de transposición basado en bits. El algoritmo específico implementado con VB es:

(1) Abra el archivo fuente en binario. mode ;

(2) Lee un byte del archivo fuente en el bit I, asumiendo que es la letra "A", y obtiene el valor ASCII de "A" como 65; >(3) Convierta 65 en una cadena binaria de ocho bits como "01000001";

(4) Ordene "01000001" bit a byte en orden inverso para obtener otra cadena binaria de ocho bits "10000010";

(5) Convierta "10000010" a decimal y vuelva a escribirlo en el archivo fuente en la posición I para completar el cifrado de un byte

(6) Repita (2), (3), (4) y (5) hasta que todos los bytes estén cifrados.

Para modularizar el programa, utilizamos el procedimiento de función ByteToBin para convertir datos de bytes en una cadena binaria (cuya esencia es convertir un número decimal en una cadena binaria de ocho dígitos); el procedimiento de función BinToByte para convertir una cadena binaria Convertir a datos de bytes (esencialmente convertir una cadena binaria de ocho bits en un número decimal): Utilice el procedimiento de función Invertir para ordenar la cadena binaria de ocho bits bit a bit en orden inverso.

El programa específico es el siguiente:

Función ByteToBin(m As Byte) As String ' Convierte datos de bytes en una cadena binaria de ocho bits

Dim c$

c$ = ""

Hacer mientras m <> 0

r = m Mod 2

m = m \ 2

c $ = r & c$

Bucle

c$ = Derecha("00000000" & c$, 8)

ByteToBin = c$

Función final

Función inversa (m como cadena) como cadena ' Invierte el orden de la cadena binaria de ocho dígitos

Dim i%, x$

x = ""

Para i = 1 a 8

x = Medio(m, i, 1) & x

Siguiente i

Inversa = x

Función final

Función BinToByte(m como cadena) Como byte ' Convierte una cadena binaria de ocho dígitos a decimal

Dim x como cadena * 1, y%, z%

z = 0

Para i = 1 a 8

x = Mid(m, i, 1 )

p>

y = x * 2 ^ (8 - i)

z = z + y

Siguiente i

BinToByte = z

Función final

Subcomando privado1_Click()

Dim x como byte, i%, fname$

fname = InputBox("¡Ingrese el nombre del archivo cifrado requerido! Tenga en cuenta el nombre de la ruta: ")

Si Dir(fname) = "" Entonces

MsgBox "El archivo no existe !"

Salir de Sub

End If

Abrir fname para binario como #1 ' Abre el archivo que se va a cifrar en modo de acceso binario

For i = 1 To LOF(1) ' La función LOF es una función interna para encontrar la longitud del archivo

Get #1, i, x ' Obtiene el i-ésimo byte

x = BinToByte(Reverse(ByteToBin(x))) ' Aquí se llaman tres funciones personalizadas

Put #1, i, x ' Escribe el byte cifrado en la ubicación original del archivo

Siguiente i

Cerrar

MsgBox "¡Misión cumplida! "

End Sub

Este ejemplo puede completar el cifrado y descifrado de cualquier archivo. El primer procesamiento del mismo archivo es el cifrado y el segundo procesamiento es el descifrado. Para depurar este programa , puede usar el Bloc de notas para crear un archivo de texto en el directorio raíz de la unidad C (suponiendo que el nombre del archivo sea aaa.txt), con cualquier contenido (puede incluir letras, caracteres chinos, números, retornos de carro, avances de línea, etc. ) y ejecútelo. Después de este procedimiento, ingrese el nombre del archivo (por ejemplo: "C:\aaa.txt") en el cuadro de diálogo de entrada del nombre del archivo y presione Entrar para completar el cifrado del archivo. puede abrirlo en el Bloc de notas. Verifique el efecto de cifrado del archivo. Si desea descifrarlo, ejecute el programa nuevamente e ingrese el mismo nombre de archivo.