Public Function encrypt(ByVal message As Byte(), ByVal password As String) As Byte()
Dim passarr As Byte() = System.Text.Encoding.Default.GetBytes(password)
Randomize()
Dim rand As Integer = Int((255 - 0 + 1) * Rnd()) + 1
Dim outarr(message.Length) As Byte
Dim u As Integer
For i As Integer = 0 To message.Length - 1
outarr(i) += (message(i) Xor passarr(u)) Xor rand
If u = password.Length - 1 Then u = 0 Else u = u + 1
Next
outarr(message.Length) = 112 Xor rand
Return outarr
End Function
我想问的问题:
getbytes(password)
已将其声明为字符串...为什么要获取字节!!
此处message
的作用是什么?
rand
和outarr
对message
做了什么?
outarr(message.Length) = 112 Xor rand
- 我无法理解
答案 0 :(得分:0)
该功能正在加密字符串。由于它正在对消息执行算术计算,因此需要字节表示(因此您可以对字节进行算术运算)。
outarr
是加密结果的字节数组。加密基于随机值rand
,它是0到255之间的整数。
我认为,112 xor rand
部分可以从加密代码中获取随机数(通过了解“秘密”值112)