1
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

我想问的问题:

  1. getbytes(password)它已经声明为字符串...为什么要获取字节!

  2. 这里的作用是message什么?

  3. 正在randoutarr什么message

  4. outarr(message.Length) = 112 Xor rand- 我无法理解这

4

1 回答 1

0

该函数正在加密一个字符串。由于它正在对消息执行算术计算,因此您需要一个字节表示(因此您可以对字节进行算术运算)。

outarr是作为加密结果的字节数组。加密基于一个随机值rand,它是 0 到 255 之间的整数。

我相信,这112 xor rand部分是为了能够从加密代码中获取随机数(通过知道“秘密”值 112)

于 2012-05-23T15:18:10.253 回答