4

私のサイトの特定のページのクエリ文字列を暗号化するために tripleDES を使用する非常に単純な暗号化クラスがあります。これは、データベース ID に基づいて人物ページが順番にスクレイピングされるのを防ぐためです。

とにかく、私は この暗号化方法を使用しました

ただし、これにはクエリ文字列に含めるべきではないものが含まれており、セキュリティ上の目的で URL スキャンによって拒否されます3d%。生成される実際の暗号化文字列には がありますspecial characters=URL スキャンを変更したくないのですが、暗号化文字などを制限する方法があるかどうか疑問に思ってまし。私は暗号化についてほとんど何も知りませんが、実際にはクエリ文字列を難読化しているだけなので、クエリ文字列の暗号化に関する他のオプションを受け入れることができます。tripleDES crypto provider

4

2 に答える 2

10

リンクしたメソッドは、Base64 エンコーディングAを使用して、暗号化されたバイト配列 (すべての種類の「印刷できない」バイトを含む可能性がある) を- Za- z0- 9+/およびのみを含む形式に変換します=

ただし、これらの最後の 3 つは URL には適していません。

String.Replaceこれらの文字を URL セーフな文字 ( +=> -/= > _== > など) に置き換えて、Base64 文字列を簡単に処理できます.=これらはパディング文字のみであるため、最後を完全に削除することもできます。(最初の 2 つの置換を行い、 を削除することが RFC3548=で提案されています。)

次に、文字列を復号化する場合は、この置換を元に戻します。完全に落とした場合は、紐の長さが4の倍数になるまで=足してください。=

于 2012-09-19T13:38:39.433 に答える
3

自分が何をしているのかわからない場合 (たとえ知っていたとしても)、暗号をいじってはいけません。代わりに、暗号をそのまま使用し、結果をUrlEncodeします。

于 2012-09-19T13:38:19.753 に答える