VB.NET 异或 + Mod

VB.NET Xor + Mod

我对 VB.NET 语言还很陌生,所以有些东西我还在学习,我需要一些帮助。所以我很感激任何指导。

我正在制作一个 XOR 加密应用程序,其中包含密钥、输入和输出。流程是这样的:Key XOR Input,结果将作为输出出现。不过,我设法成功地为该部分提出了可行的代码。

但是,现在,我需要继续那部分。我只需要输出在 33 - 126 (DEC) 的 ASCII 范围内。

我在编码方面没有做太多事情,因为我似乎找不到合适的指南。此外,我真的不知道从哪里开始,除了这里涉及一些数学逻辑 (MOD)。

有什么指点吗?谢谢。

我正在使用 Visual Studio (2017),这是我的代码:


Public Class Form1

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim key As String
    Dim input As String
    Dim output As String
    Dim keyCounter As Integer = 0
    Dim length As Integer

    key = TextBox1.Text
    input = TextBox2.Text
    length = key.Length

    For Each letter As Char In input
        output = output & Chr(Asc(letter) Xor Asc(key.Chars(keyCounter)))

        If keyCounter = length - 1 Then
            keyCounter = 0

        Else
            keyCounter += 1

        End If

    Next

    TextBox3.Text = output

End Sub

结束Class

数学很简单。要使用模数将数字限制在一个范围内,首先要计算范围内有多少个数字(含):

126 - 33 + 1 = 94

然后取你的值并使用长度计算模数,并添加范围 (33) 的较低值,使其从 33-126 而不是 0-93:

(value Mod 94) + 33

或者,如果您需要已经在 33-126 到 范围内的数字而不是 更改,您可以先减去较低的值:

((value - 33) Mod 94) + 33