2009-07-11 22 views
12

Estoy buscando una lista de palabras del diccionario de inglés para una aplicación de contraseña en la que estoy trabajando. Idealmente, la lista se puede insertar fácilmente en una base de datos mysql. ¿Alguna sugerencia?base de datos MySQL de palabras en inglés?

sistemas

Respuesta

21

mayoría Unix tienen un conjunto de listas de palabras, en mi sistema Ubuntu que está en/usr/share/dict /-americano Inglés

Una sola palabra viene por línea, por lo que es fácil de insertar si realmente lo quiero en una base de datos.

Este oneliner fiesta lo hace ineficiente:

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

Este comando MySQL lo hace de manera eficiente (si el archivo está en la misma máquina):

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

Mi sistema también tiene un archivo llamado 'cracklib-small' en'/usr/share/dict/'. Contiene 53k palabras mientras que el archivo inglés americano tiene 99k palabras. Mientras cracklib es más pequeño, el archivo en inglés contiene palabras como 'émigré', lo que sería terrible para las contraseñas, así que si el objetivo es la generación de contraseñas de estilo delwareware, puede usar el diccionario cracklib en su lugar. – Nick

19

Para importar una lista de palabras a MySQL, use

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

donde words es una tabla de una sola columna.

+0

Upvoted, editado mi respuesta para incorporar esto! –

+1

Solo para agregar para cualquier persona que buscó en Google aquí: para insertarlo en una tabla de múltiples columnas puede usar 'LOAD DATA LOCAL INFILE '/ usr/share/dict/words' INTO TABLE words (column);' donde column es varchar campo en el que desea almacenar las palabras – stormbreaker

2

encontré esto: MySQL formatted english words list

dunno mucho acerca de cuántas palabras no están en pero es una enorme lista de todos modos :)

Hay alrededor de 128/129K palabras en él y las palabras más de 10 letras tienen sido eliminado

Cuestiones relacionadas