2014-11-22 57 views
-2

我发现这个凯撒密码,我只是想完全理解它,我知道密码本身是如何工作的,因为它需要消息字符串中的第一个字母,以及用户作为字符串从字符串中的第一个字母开始经过许多次,以及它登陆的任何字母的字母都会用字母代替字符串中的每个单独的字母。For循环里面凯撒密码VB.Net

它只是代码本身我有一些麻烦,特别是for循环,所以如果有人可以解释如何for循环的作品,我会非常感激,谢谢。这里是代码:

Sub Main() 

    Console.WriteLine(Encrypt) 

    Console.ReadKey() 

End Sub 
Function Encrypt() As String 

    Dim Key As Integer 
    Dim Message As String 
    Dim EncMessage As String 
    Console.Write("Please enter a message that you would like to encrypt: ") 
    Message = Console.ReadLine ' user inputs the message they wish to encrypt 

    Dim LetterArray() As Char = Message.ToCharArray ' 
    Console.Write("What key would you like to use?: ") 
    Key = Console.ReadLine() 

    For i = 0 To LetterArray.Length - 1 
     EncMessage = EncMessage & Chr(Asc(LetterArray) + Key) 
    Next 

    Return EncMessage 

End Function 
+1

你想让我们把你的*代码解释为*你*吗? – Plutonix 2014-11-22 19:58:37

+0

我说我发现代码 – lickenchicken123 2014-11-22 20:05:53

+0

该代码没有按凯撒密码理解的方式执行凯撒密码。试试[stackoverflow.com/a/26920472/1115360](http://stackoverflow.com/a/26920472/1115360)。 – 2014-11-22 22:08:54

回答

0

您需要使用Lbound()和Ubound()来导航数组。另外,我没有看到我保留在任何地方。你也应该通过函数本身函数返回值

For i = Lbound(LetterArray) to Ubound(LetterArray)-1 
EncMessage = ...your cipher thing here 
Next 

Encrypt = EncMessage