3

ユーザーが Unicode またはその他の非ラテン文字エンコーディングで最も適切に表現されるものを入力した場合、サービスのパスワードをどのように処理しますか?

具体的には、キリル文字のパスワードを Oracle へのパスワードとして使用できますか? パスワードが UTF-8 で提供されている場合、Windows 認証メカニズムに対してユーザーのパスワードを検証するにはどうすればよいですか?

私たちのコードでこれをどのように処理すべきかについていくつかのアイデアがありますが、私たちの方向性が正しいことを確認するために他の人からのアドバイスを探しています.

4

2 に答える 2

1

エンコーディング自体が暗号化に問題を引き起こすことはありません。ほとんどのアルゴリズムは、文字ではなくバイトで動作します。問題になる可能性のある唯一のことは、同じパスワードを異なるエンコーディングで暗号化すると、パスワードにエキゾチックな (非 ASCII) 文字が使用されている場合、異なる値が生成される可能性があることです。ただし、パスワードを固定エンコーディング (UTF8 など) に変換すると、その問題は解決するはずです。

于 2008-12-10T10:08:18.197 に答える
1

認証メカニズムの長さ制限に問題がある可能性があります。

たとえば、システムが 12 バイトの最大長を指定している場合、これは utf-8 の 5 つの漢字で簡単に超える可能性があります。4 つの漢字で十分なエントロピーが必要なため、これ自体は問題ではありませんが、次の点に注意する必要があります。エラーメッセージ。

認証メカニズムが「大文字、小文字、句読点、数字をそれぞれ少なくとも 1 文字ずつ」などのルールを強制する場合、他の問題が発生する可能性があります。いくつかの言語には大文字と小文字がなく、Unicode でネイティブ言語として定義されている数十の文字があります。話者は数字と見なされますが、実装が不十分なルールでは数字として認識されない場合があります。

于 2008-12-10T15:02:52.393 に答える