无法理解这个功能

时间:2012-05-23 15:10:41

标签: vb.net function encryption this

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. randoutarrmessage做了什么?

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

1 个答案:

答案 0 :(得分:0)

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

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

我认为,112 xor rand部分可以从加密代码中获取随机数(通过了解“秘密”值112)