3

を使用して「さようなら、友達」というテキストを暗号化しますBasicTextEncryptor。したがって、暗号化値は次のようになります。

3qe80L1ap+cR2zRU9csFwOffw5NtWTueLRYgSXyjctI=

次に、上記のパラメーターをトークンとして使用する URL をユーザーにメールで送信します。

次に、ユーザーは以下の URL をコピーして Enter キーを押します。

http://localhost:8080/token=3qe80L1ap+cR2zRU9csFwOffw5NtWTueLRYgSXyjctI=

しかし、アクション メソッドを使用して Struts 2 アプリケーションのパラメーターにアクセスすると、以下のように暗号化パラメーターが得られます。

3qe80L1ap cR2zRU9csFwOffw5NtWTueLRYgSXyjctI=

+に置き換えられ" "ます。したがって、復号化すると、EncryptionOperationNotPossibleException.

ブラウザがエンコード文字であると仮定して、Struts は+toをデコードしますか? その場合、復号化に進む前に問題ありません。スペースを?に置き換えます。" "++

4

4 に答える 4

0

Base64 のいわゆるURL セーフバリアントの使用を検討してください。RFC 4648 で説明されている最も一般的なバリアントは、それぞれ and の代わりに and を使用し-_パディング+文字/( =) を省略します。

Base64 のほとんどの実装では、この URL セーフ バリアントもサポートされていますが、サポートされていない場合は、手動で簡単に行うことができます。

于 2013-07-09T19:35:11.953 に答える