2009-07-11 25 views

Odpowiedz

21

Większość Unix mają zestaw listy słów, w moim systemie Ubuntu jest na/usr/share/dict/american-angielski

jedno słowo przychodzi na linię, więc łatwo wstawić Jeśli naprawdę chcesz go w bazie danych.

to bash oneliner robi to nieefektywnie:

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

Polecenie to MySQL robi to efektywnie (jeśli plik znajduje się w tej samej maszynie):

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

Mój system ma również plik o nazwie 'cracklib-small' w'/usr/share/dict/'. Zawiera 53 tysiące słów, podczas gdy amerykański plik angielski ma 99k słów. Podczas gdy cracklib jest mniejszy, plik w języku angielskim zawiera słowa takie jak "émigré", które byłyby straszne dla haseł, więc jeśli celem jest generowanie haseł w stylu diceware, możesz zamiast tego użyć słownika cracklib. – Nick

19

importowania lista słów do MySQL, użyj

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

gdzie words jest tabelą jednokolumnową.

+0

Przepisano, zredagowałem moją odpowiedź, aby włączyć to! –

+1

Wystarczy dodać dla każdego, kto googlełbył tutaj: aby wstawić go do tabeli z wieloma kolumnami, możesz użyć polecenia "LOAD DATA LOCAL INFILE"/usr/share/dict/words 'INTO TABLE words (column); 'where column to varchar pole, w którym chcesz zapisać słowa. – stormbreaker