0

私は従業員のようなクラスを持っています。このクラスには、Id、Name、Surname、Tasks (文字列配列)、isManager、TaskDueDates (日時配列) などのフィールドがあります。このオブジェクトからテキストを生成したい。セパレーターを使用すると思いますが、これが基本的な解決策です。たとえば、私のテキストは次のようになります: 13;George;Smith;{"Task1","Task2","Task3"},false, {this night,nextweek}

ただし、オブジェクトのフィールドの 1 つにこの区切り文字が含まれている場合。プログラムは動作しません。テキストを生成した後。何らかのキーを使用して MD5 で暗号化したい。これにより、asp .net ビューステート情報のような暗号化されたデータが生成されます。プログラムは、この暗号化されたデータをソース オブジェクトに復号化します。

これどうやってするの?私はAsp .Net 2005を使用しています

4

4 に答える 4

4

MD5 は暗号化されていません。ハッシュアルゴリズムです。一部のデータから MD5 を作成する場合、ハッシュからデータを作成することはできません。詳細については、 http://en.wikipedia.org/wiki/Cryptographic_hash_functionを参照してください。

あなたの質問について: このリンクを試してください http://www.codeproject.com/KB/security/SimpleEncryption.aspx

于 2009-06-18T09:43:38.120 に答える
1

まず、MD5 を復号化することはできません。これには実際の暗号化アルゴリズムが必要です。AES256 を使用することをお勧めします。

フィールドに関しては、Unix にはフィールド区切りのテキストが永遠にあり、通常は特別な文字の前に「\」を付けますが、この場合はそうすべきではありません (「\」を'\' と書きます)。あなたはそれを盗むことができます。

編集: ASP を使用している場合、出力を HTML としてフォーマットしないのはなぜですか? 次に、出力をテーブルに入れることができます。

于 2009-06-18T09:46:14.480 に答える
0

オブジェクトを人間が読める形式にしたい場合は、手動でシリアル化する代わりに、自動 XML シリアル化を使用します。

XmlSerializer formatter;

using (FileStream file = new FileStream (Path.Combine (Application.StartupPath, GetType ().ToString () + ".xml.template"), FileMode.Create))
{
        formatter = new XmlSerializer (typeof (G));
        formatter.Serialize (file, this);
}

XML シリアライゼーションでは、XML ファイルに必要なメンバーが であることを確認してくださいpublicprivateXML シリアライズされprotectedません。

于 2009-06-18T15:58:54.643 に答える
0

回答で既に述べたように、暗号化には、 AED や DES などの暗号化アルゴリズムを使用する必要があります。

シリアル化の場合、オブジェクトを文字列に変換すること;で、セパレーターとして使用するような独自のスキームを作成できます。入力に ​​が含まれる場合を処理するには、 のような別のもの;に変換する必要があります。シリアル化されたオブジェクトは次のようになります。;\;

Name: Geor;ge

    3;Geor\;ge;Smith;{"Task1","Task2","Task3"};false;{this night,nextweek}

オブジェクトに変換し直すとき、\の前にある;場合はいつでも、これ;が文字列の一部であり、実際のセパレーターではないことがわかります。

言語シリアル化機能の使用については、はい、できるはずですが、作業している言語によって異なります。

于 2009-06-18T13:57:38.950 に答える