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
我对 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