1

こんにちは私はインターンシップに参加していて、会社からC言語を使用してパスワードの複雑さを実装する必要があると言われました。パスワードは英数字である必要があります(例:h#ll0)。私はCに慣れていないので、いくつかの困難を見つけました。私は「Cでのパスワードの複雑さ」をグーグルで検索しましたが、運がありません。誰かが私にサンプルをくれたり、プログラムでそれを行う方法を説明してもらえますか?

よろしくお願いします

ケビン

4

3 に答える 3

3

より適切な Google 用語は「強力なパスワード」です。

http://en.wikipedia.org/wiki/Password_strength

しかし、あなたが目にするほとんどの記事は C 言語に関するものではなく、おそらく正規表現の使用を提案しているでしょう。

他の人が示唆しているように、チェックを行うために独自の低レベルコードを書くことはおそらくそれほど難しくありません。これにより、使用する C 言語の正規表現ライブラリへの依存関係を生成する手間が省けます。ただし、C 以外のプログラマーが後でルールを更新する可能性が高くなり、エラーが起動する可能性が低くなるため、正規表現を使用する利点があります。それはあなたの特定の状況によって異なります。

(また、C コードの他の部分で正規表現が必要な場合は、正規表現をリンクする必要があるかもしれませんが、「無料で」取得できます...)

いずれにせよ、この StackOverflow の質問には regex.h チュートリアルへのリンクがあり、将来さらに追加される可能性があります。

C - 透明な regex.h 使用チュートリアル

于 2011-05-10T03:54:05.797 に答える
1

パスワードのエンコード方法によって異なります。ASCII 文字チャートまたは Unicode 文字チャートが必要になる場合があります。入力パスワードの文字ごとに、グループ番号、大文字、小文字、または特殊文字などに分類します。

テーブルへのリンクは次のとおりです。

http://www.asciitable.com/

http://www.tamasoft.co.jp/ja/general-info/unicode.html

于 2011-05-10T03:47:49.007 に答える
1

あなたは十分な情報を提供していません。パスワードの複雑さとは、パスワードの強度を意味すると思います。

私は誰かのためにコードを書く仕事をしているわけではありませんが、パスワードに文字と数字の両方が含まれているかどうか、少なくともn文字の長さなどがあるかどうかを判断する場合、C には関数があります。あなたはこれを行うことができます。isalnum( )isdigit()、およびisalpha()がテスト用に思い浮かびます。これらはすべて、true を示すためにゼロ以外の値を返します。

速度に関しては、C 自体は高速ですが、パスワード全体を解析する必要はないことを覚えておいてください。必要なのは、ある時点で関数がゼロ以外の値を返すことだけです。(これらの関数はすべて文字単位で解析されます。C 文字列は char 配列です。)

http://icecube.wisc.edu/~dglo/c_class/charfunc.htmlこれは、文字解析関数の良いリファレンスです。

于 2011-05-10T03:50:31.490 に答える