-1

Base64Stringを使用せずにDecryptテキストを暗号化するには?

暗号化されたテキストには @、$、#、/、\、|、=、%、^ などの特殊文字を含めてはならないため、Base64String を使用したくありません。

4

2 に答える 2

4

base64 を使用したくない場合の明白なアプローチは、base16、つまり 16 進数を使用することです。

Stack Overflow には、バイト配列と 16 進文字列表現の間の変換の例がたくさんあります。(BitConverter.ToString(data).Replace("-", "")これは、文字列への変換を実行する非効率的な方法です。逆にこれほど単純なものはありませが、それほど多くのコードではありません。)

編集:コメントに記載されSoapHexBinaryているように、これを行う簡単な方法があります。もちろん、そのクラスの使用をSOAP固有のタイプでラップしたくない場合もあります:)

もちろん、それはbase64よりもかなり多くのスペースを使用します. 1 つの代替方法として、base64 を使用する方法がありますが、別の文字セットを使用します。使用できる65 文字(65 番目はパディング用) を見つけて、その方法でエンコードします。(使用する文字を指定できるbase64ライブラリが利用できる場合がありますが、そうでない場合は非常に簡単に記述できます。)

法線だけを使用しようとしないでくださいEncoding。基本的にテキストではないデータには適していません。

編集:コメントに記載されているように、base32も使用できます。これは大文字と小文字を区別せず (潜在的に便利)、明確にするために I/1 と O/0 を避けることができます。ただし、コーディングとデバッグは困難です。

于 2013-07-19T06:02:54.943 に答える
0

ASP.NET メンバーシップ プロバイダーの実装については、MySQL コネクタのソース コードに優れた例があります。ダウンロードして調査するのは少し面倒かもしれませんが、十分に確立された暗号化および復号化モジュールが含まれています.

http://dev.mysql.com/downloads/connector/net/#downloads ダウンロードする前に「ソース コード」オプションを選択します。

データ送信または圧縮された文字ストレージのエンコード/デコードが必要な場合は、質問を編集する必要があります。エンコーディングの質問に対する回答は、暗号化/復号化の質問に対する回答とは大きく異なります。

于 2013-07-19T06:23:50.550 に答える