0

私は64baseデータ暗号化機能を使用して、リンクで送信され、次を使用してQueryStringに戻るemilアドレスを暗号化および復号化しています。

Encrypt(txtEmail.Text).ToString 

// これは " pqM/rgLD9PSrE+Ofm4pt4kg86+1RChHD " のようなものを生成します

Decrypt(Request("email").ToString

しかし、復号化はうまく機能せず、「Base-64 char 配列の長さが無効です」というエラーが返されました。

Decrypt(Request("email").Replace(" ", "+").ToString)

プラス記号「+」文字は、URL からの呼び出し時にスペースを生成していたためです。UrlEncode も試しましたが、役に立ちませんでした

Decrypt(Server.UrlEncode(Request("email")))

今私の質問は次のとおりです。

  1. これは、暗号化された文字列で直面する唯一の問題ですか?
  2. 置換機能で使用したよりも効果的な問題を解決する別の方法はありますか?

よろしくお願いします

4

1 に答える 1

0

これは、URL を適切に生成しない場合に発生します。

ASP.NetRequestアクセサーは、アクセスするデータを自動的にデコードします。

ただし、最初に文字列をクエリ文字列に入れる前に、文字列を URL データ エンコードする必要があります。

于 2013-01-10T17:37:58.837 に答える