vb2005 RC2復号化について
- 題名: vb2005 RC2復号化について
- 著者: 匿名
- 日時: 2010/04/07 20:08:27
- ID: 26680
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 【注意】匿名での投稿はルール違反です
- 著者: 匿名 改め いっちー
- 日時: 2010/04/08 9:29:44
- ID: 26683
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: 【注意】匿名での投稿はルール違反です
- 著者: なちゃ
- 日時: 2010/04/08 20:29:42
- ID: 26689
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: 【注意】匿名での投稿はルール違反です
- 著者: ヌコ村さん
- 日時: 2010/04/10 9:46:14
- ID: 26692
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: 【注意】匿名での投稿はルール違反です
- 著者: いっちー
- 日時: 2010/04/12 11:19:40
- ID: 26697
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
【解決したい問題】
RC2での復号化で困っています。
http://dobon.net/vb/dotnet/string/encryptfile.html
よりテキストファイルの暗号化を参考にさせていただきました。
***********************************************
''' <summary>
''' ファイルを復号化する
''' </summary>
''' <param name="fileName">復号化するファイル名</param>
''' <param name="key">パスワード</param>
Public Shared Sub DecryptFile(ByVal fileName As String, _
ByVal key As String)
'DESCryptoServiceProviderオブジェクトの作成
Dim des As New System.Security.Cryptography.DESCryptoServiceProvider
'共有キーと初期化ベクタを決定
'パスワードをバイト配列にする
Dim bytesKey As Byte() = System.Text.Encoding.UTF8.GetBytes(key)
'共有キーと初期化ベクタを設定
des.Key = ResizeBytesArray(bytesKey, des.Key.Length)
des.IV = ResizeBytesArray(bytesKey, des.IV.Length)
'暗号化されたファイルを読み込むためのFileStream
Dim fsIn As New System.IO.FileStream(fileName, _
System.IO.FileMode.Open, System.IO.FileAccess.Read)
'DES復号化オブジェクトの作成
Dim desdecrypt As System.Security.Cryptography.ICryptoTransform = _
des.CreateDecryptor()
'読み込むためのCryptoStreamの作成
Dim cryptStreem As New System.Security.Cryptography.CryptoStream( _
fsIn, desdecrypt, _
System.Security.Cryptography.CryptoStreamMode.Read)
'復号化されたファイルの保存先
Dim outFileName As String
If fileName.ToLower().EndsWith(".enc") Then
outFileName = fileName.Substring(0, fileName.Length - 4)
Else
outFileName = fileName + ".dec"
End If
'復号化されたデータを書き出すためのStreamWriter
Dim sw As New System.IO.StreamWriter( _
outFileName, False, System.Text.Encoding.GetEncoding("sjis"))
'復号化されたデータを読み込む
Dim sr As New System.IO.StreamReader( _
cryptStreem, System.Text.Encoding.GetEncoding("sjis"))
'復号化されたデータを書き出す
sw.Write(sr.ReadToEnd())
sw.Flush()
'閉じる
sr.Close()
sw.Close()
cryptStreem.Close()
fsIn.Close()
End Sub
***********************************************
----------------------------------
'復号化されたデータを書き出す
sw.Write(sr.ReadToEnd())
----------------------------------
の部分で
「復号化するデータの長さが無効です。」
とエラーになってしまいます。
このエラーを解決する方法をお教え下さい。