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 に答える