假设你的钥匙是字母长度相同, 你可以做一个for循环,检查字符串的每个字符(该字符是如何与你的密钥)。
例如,您的消息“hello”。
这不是实际的代码,而只是证明你在问什么概念:
for each letter in message
position_in_alphabet = current_letter
cipher_letter = key(position_in_alphabet)
append cipher_letter to cipher_message
例如,“你好”,是5个字符。所以这个循环将循环5次。 (第8,5,12,12,15)。 你插入那些关键的关键,你会得到“qlnnr”(或者关键指示)。
全部放在一起,它会看起来像:
Dim _message As String = "hello"
Const _plain As String = "abcdefghijklmnopqrstuvwxyz"
Const _key As String = "kxgtlmpqbwcnderfahjusviyoz"
Dim charPos As Integer = 0
Dim Cipher As String = ""
For i = 0 To _message.Length - 1
charPos = _plain.IndexOf(_message(i))
Cipher = Cipher & _key(charPos)
Next i
反之,查找有关该密钥的密码的位置,然后将其写入明文字典,像这样:
Dim _cipher As String = "qlnnr"
Const _plain As String = "abcdefghijklmnopqrstuvwxyz"
Const _key As String = "kxgtlmpqbwcnderfahjusviyoz"
Dim charPos As Integer = 0
Dim Message As String = ""
For i = 0 To _message.Length - 1
charPos = _key.IndexOf(_cipher(i))
Message = Message & _plain(charPos)
Next i
很难不知道你在哪里。在开始之前,有用的概念是数组,字典,循环,随机,StringBuilder。假设你从用户那里得到一个密钥是一个验证问题,而不是一个UI。如果您还不了解上述情况,则需要退后一步并查看它们。 PS你知道这种密码很容易被破解吗? –