EditText フィールドを使用して、ユーザーからパスワードを取得しています。パスワードは文字列として保存されます。後でハッシュ関数で使用されます。私の問題は、「\」などの特殊文字が、「\\」などの String クラス内のサロゲート ペアとして保存されることです。その結果、「\」などの特殊文字を使用して入力されたパスワードは、ハッシュ関数で失敗します (「\\」としてハッシュされます。これを解決するにはどうすればよいですか?
ありがとうございました!
編集 - 次の中でマングルされる (つまり、String クラスが追加のバックスラッシュを追加する) 唯一の特殊文字は (実際には) "\" であることがわかります。
- 一部の特殊文字: !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
コード全体で Java String を文字配列に置き換えることでこれを解決するのが正しい方法ですが、このアプリでは非常に面倒です。したがって、パスワード ハッシュ関数内で「\\」を「\」に置き換えるだけです。