vb.netで文字列を暗号化/複合化

    '暗号化用のデータ
    Dim enc_key() As Byte _
    = {
        &HED, &HB, &H56, &HAF, &H61, &HA2, &H71, &H39,
        &HE0, &H4B, &HDC, &HC9, &H23, &H69, &H8C, &HBD,
        &HB9, &H86, &H98, &H28, &HC8, &H3E, &H62, &HA7,
        &HFA, &H17, &HC1, &H33, &H64, &HBF, &H96, &H24
      }
    Dim enc_iv() As Byte _
    = {
        &H1F, &HDF, &H98, &H0, &H67, &H36, &H7D, &H3B,
        &HFF, &HC9, &H3B, &H79, &H4D, &HD4, &H81, &H72
      }

    ' 入力文字列をAES暗号化してBase64形式で返すメソッド
    Function EncryptToBase64(plainText As String, key As Byte(), iv As Byte()) As String
        ' 入力文字列をバイト型配列に変換
        Dim src() As Byte = Encoding.Unicode.GetBytes(plainText)
        'WriteLine($"平文のバイト型配列の長さ={src.Length}")
        ' 出力例:平文のバイト型配列の長さ=60

        ' Encryptor(暗号化器)を用意する
        Using am = New AesManaged()
            Using encryptor = am.CreateEncryptor(key, iv)
                ' ファイルを入力とするなら、ここでファイルを開く
                'Using inStream = New FileStream(FilePath, ……省略……
                ' 出力ストリームを用意する
                Using outStream = New MemoryStream()
                    ' 暗号化して書き出す
                    Using cs = New CryptoStream(outStream, encryptor, CryptoStreamMode.Write)
                        cs.Write(src, 0, src.Length)
                        ' 入力がファイルなら、inStreamから一定量ずつバイトバッファーに読み込んで
                        ' cse.Writeで書き込む処理を繰り返す(復号のサンプルコードを参照)
                    End Using
                    ' 出力がファイルなら、以上で完了

                    ' Base64文字列に変換して返す
                    Dim result() As Byte = outStream.ToArray()
                    'WriteLine($"暗号のバイト型配列の長さ={result.Length}")
                    ' 出力例:暗号のバイト型配列の長さ=64
                    ' 出力サイズはBlockSize(既定値16バイト)の倍数になる
                    Return Convert.ToBase64String(result)
                End Using
            End Using
        End Using
    End Function

    ' 暗号化されたBase64形式の入力文字列をAES復号して平文の文字列を返すメソッド
    Function DecryptFromBase64(base64Text As String, key As Byte(), iv As Byte()) As String
        ' Base64文字列をバイト型配列に変換
        Dim src() As Byte = Convert.FromBase64String(base64Text)

        ' Decryptor(復号器)を用意する
        Using am = New AesManaged()
            Using decryptor = am.CreateDecryptor(key, iv)
                ' 入力ストリームを開く
                Using inStream = New MemoryStream(src, False)
                    ' 出力ストリームを用意する
                    Using outStream = New MemoryStream()
                        ' 復号して一定量ずつ読み出し、それを出力ストリームに書き出す
                        Using cs = New CryptoStream(inStream, decryptor, CryptoStreamMode.Read)
                            Dim buffer(4095) As Byte
                            Dim len As Integer = cs.Read(buffer, 0, 4096)
                            While (len > 0)
                                outStream.Write(buffer, 0, len)
                                len = cs.Read(buffer, 0, 4096)
                            End While
                        End Using
                        ' 出力がファイルなら、以上で完了

                        ' 文字列に変換して返す
                        Dim result() As Byte = outStream.ToArray()
                        Return Encoding.Unicode.GetString(result)
                    End Using
                End Using
            End Using
        End Using
    End Function


....
    'result暗号化
    Dim enc_result As String = EncryptToBase64(result, enc_key, enc_iv)

    'result複合化
    result = DecryptFromBase64(reg_s, enc_key, enc_iv)