0

VB.NET に RTB があり、イベント ハンドラーを配置して、書式設定されたテキストを暗号化した後にファイルに保存します。ただし、書式設定をリロードする方法がわかりません。開くと、書式設定されたテキストではなく、書式設定の記号が表示されます。これが私のコードです:

Dim FileName As String = TextBox1.Text
File.Delete(FileName)
Dim EncryptElement As New TripleDESCryptoServiceProvider
            EncryptElement.Key = {AscW("B"c), AscW("A"c), AscW("1"c), AscW("R"c), AscW("3"c), AscW("9"c), AscW("G"c), AscW("V"c), AscW("5"c), AscW("S"c), AscW("P"c), AscW("0"c), AscW("L"c), AscW("Z"c), AscW("4"c), AscW("M"c)} '128 bit Key
            EncryptElement.IV = {AscW("N"c), AscW("B"c), AscW("5"c), AscW("3"c), AscW("G"c), AscW("L"c), AscW("2"c), AscW("Q"c)} ' 64 bit Initialization Vector

Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate)
Dim cStream As New CryptoStream(fStream, New TripleDESCryptoServiceProvider().CreateEncryptor(EncryptElement.Key, EncryptElement.IV), CryptoStreamMode.Write)

Dim sWriter As New StreamWriter(cStream)

sWriter.WriteLine(RichTextBox1.Rtf)

sWriter.Close()
cStream.Close()
fStream.Close()

上記のコードは保存用で、下のコードは開くためのものです。

Dim FileName As String = TextBox1.Text
Dim DecryptElement As New TripleDESCryptoServiceProvider
            DecryptElement.Key = {AscW("B"c), AscW("A"c), AscW("1"c), AscW("R"c), AscW("3"c), AscW("9"c), AscW("G"c), AscW("V"c), AscW("5"c), AscW("S"c), AscW("P"c), AscW("0"c), AscW("L"c), AscW("Z"c), AscW("4"c), AscW("M"c)}
            DecryptElement.IV = {AscW("N"c), AscW("B"c), AscW("5"c), AscW("3"c), AscW("G"c), AscW("L"c), AscW("2"c), AscW("Q"c)}

 Dim fStream As FileStream = File.Open(FileName, FileMode.OpenOrCreate)

 Dim cStream As New CryptoStream(fStream, New TripleDESCryptoServiceProvider().CreateDecryptor(DecryptElement.Key, DecryptElement.IV), CryptoStreamMode.Read)

 Dim sReader As New StreamReader(cStream)

 Dim DecryptedData As String = ""

 DecryptedData = sReader.ReadToEnd

 RichTextBox1.AppendText(DecryptedData)
 RichTextBox1.Enabled = True
 Button1.Text = "OK"

 sReader.Close()
 cStream.Close()
 fStream.Close()

問題はどこだ?

4

1 に答える 1

0

RichTextBox1.SaveFile(SomeStream, RichTextBoxStreamType) が必要です StreamWriter が詰め込んでいると思います。

ああ、あなたが暗号化の鍵を世界に与えたのを見て、新しいものを考え出したくなるかもしれません...

コメントの後に追加されましたが、証明されていません。

保存ルーチンでこれらの 2 行を置き換えます

Dim sWriter As New StreamWriter(cStream)
sWriter.WriteLine(RichTextBox1.Rtf)

RichTextBox1.SaveFile(cStream,RichTextBoxStreamType.RichText);

そして取り除くswriter.Close()

おもう。

于 2013-08-24T09:09:46.567 に答える