Skip to content

Instantly share code, notes, and snippets.

@mjethani
Last active August 29, 2015 14:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mjethani/1cf2d8e34c770cf5a37e to your computer and use it in GitHub Desktop.
Save mjethani/1cf2d8e34c770cf5a37e to your computer and use it in GitHub Desktop.
# http://simple.wikipedia.org/wiki/Wikipedia:List_of_1000_basic_words
I
a
about
above
across
act
active
activity
add
afraid
after
again
age
ago
agree
air
all
alone
along
already
always
am
amount
an
and
angry
another
answer
any
anyone
anything
anytime
appear
apple
are
area
arm
army
around
arrive
art
as
ask
at
attack
aunt
autumn
away
baby
back
bad
bag
ball
bank
base
basket
bath
be
bean
bear
beautiful
bed
bedroom
beer
before
begin
behave
behind
bell
below
besides
best
better
between
big
bird
birth
birthday
bit
bite
black
bleed
block
blood
blow
blue
board
boat
body
boil
bone
book
border
born
borrow
both
bottle
bottom
bowl
box
boy
branch
brave
bread
break
breakfast
breathe
bridge
bright
bring
brother
brown
brush
build
burn
bus
business
busy
but
buy
by
cake
call
can
candle
cap
car
card
care
careful
careless
carry
case
cat
catch
central
century
certain
chair
chance
change
chase
cheap
cheese
chicken
child
children
chocolate
choice
choose
circle
city
class
clean
clear
clever
climb
clock
close
cloth
clothes
cloud
cloudy
coat
coffee
coin
cold
collect
colour
comb
come
comfortable
common
compare
complete
computer
condition
contain
continue
control
cook
cool
copper
corn
corner
correct
cost
count
country
course
cover
crash
cross
cry
cup
cupboard
cut
dance
dangerous
dark
daughter
day
dead
decide
decrease
deep
deer
depend
desk
destroy
develop
die
different
difficult
dinner
direction
dirty
discover
dish
do
dog
door
double
down
draw
dream
dress
drink
drive
drop
dry
duck
dust
duty
each
ear
early
earn
earth
east
easy
eat
education
effect
egg
eight
either
electric
elephant
else
empty
end
enemy
enjoy
enough
enter
entrance
equal
escape
even
evening
event
ever
every
everybody
everyone
exact
examination
example
except
excited
exercise
expect
expensive
explain
extremely
eye
face
fact
fail
fall
false
family
famous
far
farm
fast
fat
father
fault
fear
feed
feel
female
fever
few
fight
fill
film
find
fine
finger
finish
fire
first
fish
fit
five
fix
flag
flat
float
floor
flour
flower
fly
fold
food
fool
foot
football
for
force
foreign
forest
forget
forgive
fork
form
four
fox
free
freedom
freeze
fresh
friend
friendly
from
front
fruit
full
fun
funny
furniture
further
future
game
garden
gate
general
gentleman
get
gift
give
glad
glass
go
goat
god
gold
good
goodbye
grandfather
grandmother
grass
grave
great
green
grey
ground
group
grow
gun
hair
half
hall
hammer
hand
happen
happy
hard
hat
hate
have
he
head
healthy
hear
heart
heaven
heavy
height
hello
help
hen
her
here
hers
hide
high
hill
him
his
hit
hobby
hold
hole
holiday
home
hope
horse
hospital
hot
hotel
hour
house
how
hundred
hungry
hurry
hurt
husband
ice
idea
if
important
in
increase
inside
into
introduce
invent
invite
iron
is
island
it
its
jelly
job
join
juice
jump
just
keep
key
kill
kind
king
kitchen
knee
knife
knock
know
ladder
lady
lamp
land
large
last
late
lately
laugh
lazy
lead
leaf
learn
leave
left
leg
lend
length
less
lesson
let
letter
library
lie
life
light
like
lion
lip
list
listen
little
live
lock
lonely
long
look
lose
lot
love
low
lower
luck
machine
main
make
male
man
many
map
mark
market
marry
matter
may
me
meal
mean
measure
meat
medicine
meet
member
mention
method
middle
milk
million
mind
minute
miss
mistake
mix
model
modern
moment
money
monkey
month
moon
more
morning
most
mother
mountain
mouth
move
much
music
must
my
name
narrow
nation
nature
near
nearly
neck
need
needle
neighbour
neither
net
never
new
news
newspaper
next
nice
night
nine
no
noble
noise
none
nor
north
nose
not
nothing
notice
now
number
obey
object
ocean
of
off
offer
office
often
oil
old
on
one
only
open
opposite
or
orange
order
other
our
out
outside
over
own
page
pain
paint
pair
pan
paper
parent
park
part
partner
party
pass
past
path
pay
peace
pen
pencil
people
pepper
per
perfect
period
person
petrol
photograph
piano
pick
picture
piece
pig
pin
pink
place
plane
plant
plastic
plate
play
please
pleased
plenty
pocket
point
poison
police
polite
pool
poor
popular
position
possible
potato
pour
power
present
press
pretty
prevent
price
prince
prison
private
prize
probably
problem
produce
promise
proper
protect
provide
public
pull
punish
pupil
push
put
queen
question
quick
quiet
quite
radio
rain
rainy
raise
reach
read
ready
real
really
receive
record
red
remember
remind
remove
rent
repair
repeat
reply
report
rest
restaurant
result
return
rice
rich
ride
right
ring
rise
road
rob
rock
room
round
rubber
rude
rule
ruler
run
rush
sad
safe
sail
salt
same
sand
save
say
school
science
scissors
search
seat
second
see
seem
sell
send
sentence
serve
seven
several
sex
shade
shadow
shake
shape
share
sharp
she
sheep
sheet
shelf
shine
ship
shirt
shoe
shoot
shop
short
should
shoulder
shout
show
sick
side
signal
silence
silly
silver
similar
simple
since
sing
single
sink
sister
sit
six
size
skill
skin
skirt
sky
sleep
slip
slow
small
smell
smile
smoke
snow
so
soap
sock
soft
some
someone
something
sometimes
son
soon
sorry
sound
soup
south
space
speak
special
speed
spell
spend
spoon
sport
spread
spring
square
stamp
stand
star
start
station
stay
steal
steam
step
still
stomach
stone
stop
store
storm
story
strange
street
strong
structure
student
study
stupid
subject
substance
successful
such
sudden
sugar
suitable
summer
sun
sunny
support
sure
surprise
sweet
swim
sword
table
take
talk
tall
taste
taxi
tea
teach
team
tear
telephone
television
tell
ten
tennis
terrible
test
than
that
the
their
then
there
therefore
these
thick
thin
thing
think
third
this
though
threat
three
tidy
tie
title
to
today
toe
together
tomorrow
tonight
too
tool
tooth
top
total
touch
town
train
tram
travel
tree
trouble
true
trust
try
turn
twice
type
ugly
uncle
under
understand
unit
until
up
use
useful
usual
usually
vegetable
very
village
visit
voice
wait
wake
walk
want
warm
was
wash
waste
watch
water
way
we
weak
wear
weather
wedding
week
weight
welcome
well
were
west
wet
what
wheel
when
where
which
while
white
who
why
wide
wife
wild
will
win
wind
window
wine
winter
wire
wise
wish
with
without
woman
wonder
word
work
world
worry
yard
yell
yesterday
yet
you
young
your
zero
zoo
#!/usr/bin/env node
// usage: passphrase [<entropy>]
var crypto = require('crypto');
var fs = require('fs');
var path = require('path');
var dictionary = null;
function loadDictionary() {
try {
var data = fs.readFileSync(path.resolve(__dirname, 'dictionary'),
{ encoding: 'utf8' });
dictionary = data.split('\n').map(function (line) {
// Trim spaces and strip out comments.
return line.replace(/^\s*|\s*$/g, '').replace(/^#.*/, '');
}).filter(function (line) {
// Skip blank lines.
return line !== '';
});
} catch (error) {
dictionary = [];
}
}
function randomPassphrase(entropy) {
var passphrase = '';
var n = Math.ceil(entropy / Math.log2(dictionary.length));
while (n-- > 0) {
// Pick a random word from the dictionary and add it to the
// passphrase.
var randomNumber = crypto.randomBytes(2).readUInt16BE();
var index = Math.floor((randomNumber / 0x10000)
* dictionary.length);
passphrase += (passphrase && ' ' || '') + dictionary[index];
}
return passphrase;
}
function main() {
if (process.argv[2] === '--help' || process.argv[2] === '-h'
|| process.argv[2] === '-?') {
console.log('usage: passphrase [<entropy>]\n');
process.exit();
}
loadDictionary();
if (dictionary.length === 0) {
throw 'No dictionary available';
}
var entropy = process.argv[2];
if (isNaN(entropy)) {
entropy = 100;
}
console.log(randomPassphrase(entropy));
}
if (require.main === module) {
main();
}
// vim: et ts=2 sw=2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment