2009-07-11 10 views
12

私が取り組んでいるパスワードアプリケーションの英語辞書の単語のリストを探しています。 リストはmysqlデータベースに簡単に挿入できます。 提案がありますか?英語のMySQLデータベース?

答えて

21

ほとんどのUNIXシステムは、単語リストのセットを持って、私のUbuntuシステムではそれが上にある、アメリカ英語、それは本当にあなたならば挿入するのは簡単ですので

一つの単語は、行ごとに来ては、/ usr/share/dictの/それをデータベースに入れてください。

これはbash onelinerは非効率的にそれをしない:(ファイルが同じマシンにある場合)

cat /usr/share/dict/american-english \ 
    | while read i; do echo insert into wordlist\(word\) VALUES \(\"$i\"\); done \ 
    | mysql -u<user> -p<pass> <db> 

このMySQLのコマンドでは、効率的にそれをしない:

LOAD DATA LOCAL INFILE '/usr/share/dict/american-english' INTO TABLE wordlist; 
+0

私のシステムには、 '/ usr/share/dict /'に 'cracklib-small'というファイルもあります。それは53k語を含み、アメリカ英語のファイルは99k語を含む。 cracklibはもっと小さいですが、英語のファイルには 'émigré'のような単語が含まれています。これはパスワードにとって恐ろしいものです。そのため、ディクショナリスタイルのパスワード生成であれば、代わりにcracklib辞書を使いたいかもしれません。 – Nick

19

インポートしますMySQLへの単語リスト、

LOAD DATA LOCAL INFILE '/usr/share/dict/words' INTO TABLE words;

ここで、wordsは単一列テーブルです。

+0

Upvoted、これを組み込むために私の答えを編集! –

+1

ここでグーグルで検索した人を追加するだけです:マルチカラムテーブルに挿入するには、 'LOAD DATA LOCAL INFILE '/ usr/share/dict/words' INTO TABLE words(column);' columnはvarcharあなたが単語を保存したいフィールド。 – stormbreaker

2

私はこれを見つけた:MySQL formatted english words list

は言葉がでていないが、それはとにかく巨大なリストだ何について多くを知らない:)

およそ128/129Kその中の単語と単語が10の文字が持っているよりも長いがあります削除されました。

関連する問題