2017-11-29 30 views
0

私は疑いがあります。特定のStringのBase64エンコーディングに関するものです。Base64特定の文字列のエンコードの違い

基本認証のタイプの承認が成功した後にREST WebServicesを実行できるようにするアプリケーションがあります。

私は5N0v22nD17RrV8f4 @パスワードCPを持つユーザーUSER_NAMEのパスワードを設定しています。

私のシステムでは、Postman/Advanced RESTクライアントを使用して、送信された要求は正常に処理されます。同じRESTクライアントを使用している他のシステムの大半を作成すると、同じ要求が失敗します。

このパスワードを別のユーザーに設定すると、そのユーザーの資格情報に同じ問題があります。

私は、Base64エンコード出力文字セットが問題であることに気付きました。しかし、RESTクライアントで変更する方法はありません(は既製品のほとんどではありません)。

しかし、なぜこの特定のパスワードに対してのみ起こっているのですか?私は他のすべてのパスワードをチェックし、うまく動作します。

文字列: USER_NAME:CP @ 5N0v22nD17RrV8f4
UTF-8: VVNFUl9OQU1FOkNQQDVOMHYyMm5EMTdSclY4ZjTigIs =
のWindows-1252: VVNFUl9OQU1FOkNQQDVOMHYyMm5EMTdSclY4ZjQ =
ASCII: VVNFUl9OQU1FOkNQQDVOMHYyMm5EMTdSclY4ZjQ =


のみのためにCP @ 5N0v22nD17RrV8f4 Base64のUTF-8出力文字セットのエンコーディングが異なる結果になります。
他のパスワードを使用すると、すべての出力が同じになります。

5N0v22nD17RrV8f4 @CPは、文字列の残りの部分と異なっている理由を私は理解してください。



アドバンス
Balu

答えて

1

のおかげで、文字列は、文字列の末尾にnon breaking spaceを持っています。

私は以下の手順でこれをテストしました。 https://www.base64decode.org/

    1. デコードUTF-8文字列VVNFUl9OQU1FOkNQQDVOMHYyMm5EMTdSclY4ZjTigIsの=はhttps://www.base64decode.org/でUTF-8で符号化するために結果をコピーし、今回は文字列の最後に一度バックスペースを押しました。=

    出力VVNFUl9OQU1FOkNQQDVOMHYyMm5EMTdSclY4ZjQあなたはまた、手動で文字を入力してみてください、とエンコードができ、私に与えます。

  • +0

    ありがとうAshish。あなたが言ったとおりです。 私はそれについて考えましたが、最初に文書のパスワードを更新してそこからコピーし、それをユーザーに送りました。 – Balu

    +0

    喜んで助けになる:) –