Система шифрования Вижинера - VB

Узнай цену своей работы

Формулировка задачи:

Система шифрования Вижинера Здравствуйте, помогите плиз написать код дешифратора на основе кода шифратора .Код шифратора я нагуглил . В программировании разбираюсь не очень..SOS

Решение задачи: «Система шифрования Вижинера»

textual
Листинг программы
Dim n%
Dim table(255)
 
' алфавит русс.
Private Sub Command1_Click()
Call Ru(223, 184)
MsgBox "ключ:   " & String(28, " ") & "авс" & vbLf & _
       "открытый текст:            " & kodek(0, kodek(1, "открытый текст", "авс"), "авс") & vbLf & _
       "зашифрованный текст: " & kodek(1, "открытый текст", "авс")
End Sub
 
'.....................................
'функция возвращает строку : если = 1(True), - то зашифрованный,  если=0(False), - то расшифрованную (восстановленную)
Function kodek(kd As Boolean, txt As String, Key_txt As String) As String
   d = Len(txt)
   kodek = ""
      For i = 1 To d
          i1 = IIf(i Mod Len(Key_txt) = 0, Len(Key_txt), i Mod Len(Key_txt))
          s = Mid(txt, i, 1)
          s1 = Mid(Key_txt, i1, 1)
              If Asc(s) = 10 Or Asc(s) = 13 Or Asc(s) = 9 Then
                 kodek = kodek & s
              Else
                 For p = 0 To n
                     If s = table(p) Then iword = p
                     If s1 = table(p) Then ikey = p
                 Next p
                 ind = IIf(kd, (iword + ikey) Mod n, (iword - ikey + n) Mod n)
                 kodek = kodek + table(ind)
              End If
       Next i
End Function
 
'..............................................
Sub Ru(a As Integer, e As Integer)
pp = 1
 For i = 0 To 32
  If i = 6 Then
     table(6) = Chr(e)
     pp = 0
  Else
      table(i) = Chr(i + a + pp)
  End If
 Next i
n = 34
table(33) = Chr(32)
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5
Похожие ответы