XMLファイルを暗号化して別の場所に送信し、そこで復号化する必要があります。以下のコードからわかるように、私は同じキーを使用していますが、動作しません(今のところ2つのローカルファイルを使用しています)。別ファイルのXML暗号化/復号化
次のように私が手にエラーがある:
パディングは無効であり、削除することはできません。 Decrypt.aspxで
この行の
に:薄暗いxReader私はそれがファイルが正しく保存されない、例えば、エラーの原因となる実際の暗号化段階にあるかもしれない考えていますXmlTextReaderは
として。
Encrypt.aspx
Dim rijnAlg As RijndaelManaged
rijnAlg = RijndaelManaged.Create()
rijnAlg.Key = {118, 123, 23, 17, 161, 152, 35, 68, 126, 213, 16, 115, 68, 217, 58, 108, 56, 218, 5, 78, 28, 128, 113, 208, 61, 56, 10, 87, 187, 162, 233, 38}
rijnAlg.IV = {33, 241, 14, 16, 103, 18, 14, 248, 4, 54, 18, 5, 60, 76, 16, 191}
Dim encryptor As ICryptoTransform
encryptor = rijnAlg.CreateEncryptor(rijnAlg.Key, rijnAlg.IV)
Dim wStream As FileStream
wStream = File.Open("C:\test.xml", FileMode.Create)
Dim cStream As CryptoStream
cStream = New CryptoStream(wStream, encryptor, CryptoStreamMode.Write)
Dim sWriter As StreamWriter
sWriter = New StreamWriter(cStream)
XMLDoc.Save(sWriter)
'Clear memory'
wStream.Flush()
wStream.Close()
Decrypt.aspx
Dim rijnAlg As RijndaelManaged
rijnAlg = RijndaelManaged.Create()
rijnAlg.Key = {118, 123, 23, 17, 161, 152, 35, 68, 126, 213, 16, 115, 68, 217, 58, 108, 56, 218, 5, 78, 28, 128, 113, 208, 61, 56, 10, 87, 187, 162, 233, 38}
rijnAlg.IV = {33, 241, 14, 16, 103, 18, 14, 248, 4, 54, 18, 5, 60, 76, 16, 191}
Dim decryptor As ICryptoTransform
decryptor = rijnAlg.CreateDecryptor(rijnAlg.Key, rijnAlg.IV)
Response.Write(rijnAlg.Key)
Response.Write(rijnAlg.IV)
Dim rStream As FileStream
rStream = File.OpenRead("C:\test.xml")
Dim cStream As CryptoStream
cStream = New CryptoStream(rStream, decryptor, CryptoStreamMode.Read)
Dim xReader As XmlTextReader
xReader = New XmlTextReader(cStream)
Dim xDoc As XDocument
xDoc = XDocument.Load(xReader)
xDoc.Save("C:\test.xml")
、可能な関心のために、ここで私が使用していますXMLを作成するコードです:
Dim XMLDoc As XDocument
XMLDoc = New XDocument(
New XDeclaration("1.0", "utf-8", "yes"),
New XElement("user",
New XElement("details",
New XElement("firstname", Firstname.Text),
New XElement("surname", Lastname.Text)
)
)
)
XMLDoc.Save("C:\test.xml")
それは私はしかし他のストリームを閉じることはできないだろう。私はUsingメソッドを試し、私がどうやって行くのか教えてあげます。ありがとうございました。 –
@ user718341:「あなたを許さないだろう」ということはどういう意味ですか?私の推測では、それらを間違った順序で閉じようとしていて、クローズされたFileStreamにフラッシュしようとしました... –
"wouldnt let me" =エラーが出ました。いいえ、私は注文を変更しました - 私はそれが残りのものに分割された最後のものを閉じることを意味していたと仮定しました。 –