55 lines
1.6 KiB
Plaintext
55 lines
1.6 KiB
Plaintext
Function Filtrar(cadorigen As String) As String
|
|
Dim As String letra
|
|
Dim As String filtrado = ""
|
|
For i As Integer = 1 To Len(cadorigen)
|
|
letra = Ucase(Mid(cadorigen, i, 1))
|
|
If Instr("ABCDEFGHIJKLMNOPQRSTUVWXYZ", letra) Then filtrado += letra
|
|
Next i
|
|
Return filtrado
|
|
End Function
|
|
|
|
Function Encriptar(texto As String, llave As String) As String
|
|
texto = Filtrar(texto)
|
|
Dim As String mSS, kSS, letra, cifrado = ""
|
|
Dim As Integer m, k, c, j = 1
|
|
For i As Integer = 1 To Len(texto)
|
|
mSS = Mid(texto, i, 1)
|
|
m = Asc(mSS) - Asc("A")
|
|
kSS = Mid(llave, j, 1)
|
|
k = Asc(kSS) - Asc("A")
|
|
j = (j Mod Len(llave)) + 1
|
|
c = (m + k) Mod 26
|
|
letra = Chr(Asc("A") + c)
|
|
cifrado += letra
|
|
Next i
|
|
Return cifrado
|
|
End Function
|
|
|
|
Function DesEncriptar(texto As String, llave As String) As String
|
|
Dim As String mSS, kSS, letra, descifrado = ""
|
|
Dim As Integer m, k, c, j = 1
|
|
For i As Integer = 1 To Len(texto)
|
|
mSS = Mid(texto, i, 1)
|
|
m = Asc(mSS) - Asc("A")
|
|
kSS = Mid(llave, j, 1)
|
|
k = Asc(kSS) - Asc("A")
|
|
j = (j Mod Len(llave)) + 1
|
|
c = (m - k + 26) Mod 26
|
|
letra = Chr(Asc("A")+c)
|
|
descifrado += letra
|
|
Next i
|
|
Return descifrado
|
|
End Function
|
|
|
|
Dim Shared As String llave
|
|
llave = Filtrar("vigenerecipher")
|
|
|
|
Dim As String cadorigen = "Beware the Jabberwock, my son! The jaws that bite, the claws that catch!"
|
|
Print cadorigen
|
|
Print llave
|
|
|
|
Dim As String cadcifrada = Encriptar(cadorigen, llave)
|
|
Print " Cifrado: "; cadcifrada
|
|
Print "Descifrado: "; DesEncriptar(cadcifrada, llave)
|
|
Sleep
|