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

フォームアプリと ASP.netの違いについて

環境/言語:[XP ProSP3 .NET 2.0 VS2005 C#]
分類:[ASP.NET]

こんにちは

WinXP SP3 VS2005 .NET2.0 C# で開発をしています。
特定の文字列を暗号化出力するフォームアプリを ASP.netに移植しているのですが
# ASP.net自体は始めてです。
ASP.net だと違う出力となってしまいます。散々調べたのですが解りません Orz

暗号化する処理はフォームアプリも ASP.netも C++/CLIで作成された同じ
DLLを参照しています。
内部では MemoryStream()や CryptoStream()を使って受け取った文字列を
暗号化しているようです、これは別の人が作ったものです。

与えている文字列が同じなのに、フォームアプリと ASP.netで出力結果が
違うということがあるのでしょうか?
原因や対策がおわかりの方がおられましたらよろしくお願いします。
■No29536に返信(二等兵さんの記事)
出力結果をどのように確認されたのかわかりませんので、そのあたりも
含めまして原因として思いついたものは2つあります。
・暗号化ロジックがパラメータを受け付けるようになっていて、それが違う。
・暗号化ロジックが出力するものは同じだけれども、違うように見える。

出力の違いが暗号化ロジックの動作に起因するのか、それともUIの動作に起因するのか、
大きく2つにわけられると思います。まずはそのあたりを確認されてみて
はいかがでしょうか。

void CheckEncryptLogic() {
    var input = "入力文字列";
    var hopeOutput = "期待する出力";
    var actuallyOutput = Encrypt();
    Debug.WriteLine(hopeOutput == actuallyOutput);
}

メソッド名も値も適当ですが、UIが一切関わらないようこんな感じに値を
ハードコーディングして暗号化を行い、falseと出力されるようであれば暗号化ロジック
の方を、trueと出力されるようであればUIの方をさらに確認されてみてはいかがでしょうか。
■No29538に返信(もりおさんの記事)

もりおさん
こんにちはコメントありがとうございます。
確認コードまで書いて頂き恐縮です。
今から試してみます。
■No29540に返信(二等兵さんの記事)
> ■No29538に返信(もりおさんの記事)
>

原因がわかりました。C++/CLIで作成された DLLにバグが有ったようです。
暗号化の際に使うベクタ(よくわかりません)を生成する部分だそうです。
修正版を使うと同じ出力結果となりました。
もりおさん、ありがとうございました。
解決済み!

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