Unicode パスワードのサポートを追加することは、開発者が無視してはならない重要な機能です。
それでも、パスワードに Unicode のサポートを追加するのは難しい作業です。なぜなら、Unicode では同じテキストがさまざまな方法でエンコードされる可能性があり、そのためにユーザーがログインするのを妨げたくないからです。
パスワードを UTF-8 として保存するとします。この質問は Unicode エンコーディングとは関係なく、Unicode の正規化に関連していることに注意してください。
問題は、Unicode データをどのように正規化するかです。
比較できるかどうかを確認する必要があります。次の Unicode 標準がリリースされたときに、パスワードの検証が無効にならないようにする必要があります。
注: Unicode パスワードがおそらくまったく使用されない場所もいくつかありますが、この質問はUnicode パスワードを使用する理由や時期に関するものではなく、適切な方法でそれらを実装する方法に関するものです。
1回目の更新
OSを使って正規化するように、ICUを使わずにこれを実装することは可能ですか?