DOBON.NET DOBON.NETプログラミング掲示板過去ログ

暗号化について、エラー

環境/言語:[Windows Vista/7 C# VS2005 VC2010]
分類:[.NET]

ここで紹介されている暗号化を試していますが、
ttp://dobon.net/vb/dotnet/string/encryptfile.htmlの
「パスワードから共有キーを作成する」

これで、EncryptFile()、DecryptFile() すると復号化で下記のエラーが出ます。
「パディングは無効なので、削除できません。」
調べてみると、暗号化段階で、16バイトずつ行うため最後にでる端数の調整がうまくいってないと出るみたいです。

そうするとEncryptFile()、に問題があるみたいですがどうしたら回避できますでしょうか?
試したのは、暗号化側でファイルストリームをSystem.IO.MemoryStream outFs = new System.IO.MemoryStream();にすればよい、ようなことがありましたが、結果変わりませんでしたし、これってファイル名やパスが指定できないみたいです。

教えてください。お願いします。

テストは、すでに作成したWinアプリ VS2005で作成したものに暗号化部分を追加し復号は、VS2010で現在作成中です。
■No28467に返信(ssさんの記事)
> ここで紹介されている暗号化を試していますが、
> ttp://dobon.net/vb/dotnet/string/encryptfile.htmlの
> 「パスワードから共有キーを作成する」
>
> これで、EncryptFile()、DecryptFile() すると復号化で下記のエラーが出ます。

エラーが出るのは「パスワードから共有キーを作成する」のコードで、その上のコードではエラーが出ないということでよろしいでしょうか?もしそうであれば、まず暗号化に使用したパスワードと復号化に使用したパスワードが同じかを確認してみてください。違った場合は、エラーが出ます。もしパスワードが同じであれば、GenerateKeyFromPasswordで作成されるKeyとIVが暗号化する時と復号化する時で同じかを調べてみてください。
管理人様、直々の回答ありがとうございます。

> まず暗号化に使用したパスワードと復号化に使用したパスワードが同じかを確認してみてください。
お恥ずかしながら、パスワードが違っていました。メール送信側と受信側が別パソコンで確認していたためわずかな違いに気づきませんでした。


お世話をおかけして申し訳ありません。
■No28471に返信(ssさんの記事)
> 管理人様、直々の回答ありがとうございます。
>
>>まず暗号化に使用したパスワードと復号化に使用したパスワードが同じかを確認してみてください。
> お恥ずかしながら、パスワードが違っていました。メール送信側と受信側が別パソコンで確認していたためわずかな違いに気づきませんでした。
>
>
> お世話をおかけして申し訳ありません。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板