Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
4543 lines (4502 sloc) 106 KB
<?php
$pageName = "Password Generator";
$pageDescription = "Secure and easy client-side password generator";
?>
<?php include('../_inc/header.php'); ?>
<?php include('../_inc/navigation.php'); ?>
<div class="container">
<h1>Secure Password Generator</h1>
<h5>Generate passwords securely on your device. No information is sent to our servers! <br>Source code is available <a href="https://github.com/triss90/webbox.dev/blob/master/password/index.php" target="_blank" title="password generator sourcecode">here</a>.</h5><br>
<div class="row">
<div class="col-12 col-md-6">
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="passphrase" id="passphrase">
<label class="custom-control-label" for="passphrase">Generate passphrase</label>
</div>
<br>
<label class="passwordLengthLabel" for="passwordLength">Password Length</label>
<select style="margin-bottom: 2rem;" class="custom-select" title="Select the length of your password." name="passwordLength" id="passwordLength">
<optgroup label="Weak">
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
</optgroup>
<optgroup label="Strong">
<option value="16" selected>16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
<option value="32">32</option>
<option value="33">33</option>
<option value="34">34</option>
<option value="35">35</option>
<option value="36">36</option>
<option value="37">37</option>
<option value="38">38</option>
<option value="39">39</option>
<option value="40">40</option>
<option value="41">41</option>
<option value="42">42</option>
<option value="43">43</option>
<option value="44">44</option>
<option value="45">45</option>
<option value="46">46</option>
<option value="47">47</option>
<option value="48">48</option>
<option value="49">49</option>
<option value="50">50</option>
<option value="51">51</option>
<option value="52">52</option>
<option value="53">53</option>
<option value="54">54</option>
<option value="55">55</option>
<option value="56">56</option>
<option value="57">57</option>
<option value="58">58</option>
<option value="59">59</option>
<option value="60">60</option>
<option value="61">61</option>
<option value="62">62</option>
<option value="63">63</option>
<option value="64">64</option>
<option value="65">65</option>
<option value="66">66</option>
<option value="67">67</option>
<option value="68">68</option>
<option value="69">69</option>
<option value="70">70</option>
<option value="71">71</option>
<option value="72">72</option>
<option value="73">73</option>
<option value="74">74</option>
<option value="75">75</option>
<option value="76">76</option>
<option value="77">77</option>
<option value="78">78</option>
<option value="79">79</option>
<option value="80">80</option>
<option value="81">81</option>
<option value="82">82</option>
<option value="83">83</option>
<option value="84">84</option>
<option value="85">85</option>
<option value="86">86</option>
<option value="87">87</option>
<option value="88">88</option>
<option value="89">89</option>
<option value="90">90</option>
<option value="91">91</option>
<option value="92">92</option>
<option value="93">93</option>
<option value="94">94</option>
<option value="95">95</option>
<option value="96">96</option>
<option value="97">97</option>
<option value="98">98</option>
<option value="99">99</option>
<option value="100">100</option>
<option value="101">101</option>
<option value="102">102</option>
<option value="103">103</option>
<option value="104">104</option>
<option value="105">105</option>
<option value="106">106</option>
<option value="107">107</option>
<option value="108">108</option>
<option value="109">109</option>
<option value="110">110</option>
<option value="111">111</option>
<option value="112">112</option>
<option value="113">113</option>
<option value="114">114</option>
<option value="115">115</option>
<option value="116">116</option>
<option value="117">117</option>
<option value="118">118</option>
<option value="119">119</option>
<option value="120">120</option>
<option value="121">121</option>
<option value="122">122</option>
<option value="123">123</option>
<option value="124">124</option>
<option value="125">125</option>
<option value="126">126</option>
<option value="127">127</option>
<option value="128">128</option>
</optgroup>
<optgroup label="Unbelievable">
<option value="256">256</option>
<option value="512">512</option>
<option value="1024">1024</option>
<option value="2048">2048</option>
</optgroup>
</select>
<div class="custom-control custom-checkbox symbolsLabel">
<input type="checkbox" class="custom-control-input" name="symbols" id="symbols" checked="checked">
<label class="custom-control-label" for="symbols">Include Symbols (e.g. @#$%)</label>
</div>
<div class="custom-control custom-checkbox numbersLabel">
<input type="checkbox" class="custom-control-input" name="numbers" id="numbers" checked="checked">
<label class="custom-control-label" for="numbers">Include Numbers (e.g. 123456)</label>
</div>
<div class="custom-control custom-checkbox lowercaseLabel">
<input type="checkbox" class="custom-control-input" name="lowercase" id="lowercase" checked="checked">
<label class="custom-control-label" for="lowercase">Include Lowercase Characters (e.g. abcdefgh)</label>
</div>
<div class="custom-control custom-checkbox uppercaseLabel" style="margin-bottom:1rem;">
<input type="checkbox" class="custom-control-input" name="uppercase" id="uppercase" checked="checked">
<label class="custom-control-label" for="uppercase">Include Uppercase Characters (e.g. ABCDEFGH)</label>
</div>
<div class="custom-control custom-checkbox">
<input type="checkbox" class="custom-control-input" name="save" id="save">
<label class="custom-control-label" for="save">Save Configuration</label>
</div>
<button id="buttonSubmit" type="button" class="btn btn-info btn-block" onclick="passwordGenerator()" style="margin-top: 2.2rem;">Generate Password</button>
<button id="buttonLoad" class="btn btn-info btn-block" type="button" style="display:none;margin-top:2.2rem;" disabled="">
<span class="spinner-grow spinner-grow-sm" role="status" aria-hidden="true"></span>
Generating...
</button>
</div>
<div class="col-12 col-md-6">
<div class="card text-white bg-info mb-3" style="display: none;">
<div class="card-header">Randomly Generated Password</div>
<div class="card-body">
<p class="card-text" id="output" style="font-size: 2rem;"></p>
</div>
</div>
</div>
</div>
<div class="row">
<div class="col-12">
<div class="card border-dark mb-3" >
<div class="card-header">Passwords - Best practise</div>
<div class="card-body">
<h4 class="card-title">Keep your passwords strong</h4>
<p class="card-text"
<ul>
<li>Use a minimum of 10 symbols, including numbers, both uppercase and lowercase letters, and special symbols.</li>
<li>Even better, use passphrases consisting of a minimum of 15 symbols using letters and numbers.</li>
</ul>
</p><br>
<h4 class="card-title">Avoid common password weaknesses</h4>
<p class="card-text"
<ul>
<li>Easy-to-guess passwords, especially "password"</li>
<li>Your name, the name of your spouse or partner name, or other names</li>
<li>A string of numbers or letters like “1234” or “abcd”, or simple patterns of letters on the keyboard, like “asdfg”</li>
<li>Your phone number or your license plate number, anybody’s birth date, or other information easily obtained about you (e.g., your address, town or alma mater)</li>
<li>Passwords of all the same letter</li>
<li>Words that can be found in the dictionary</li>
<li>Default passwords, even if they seem strong</li>
<li>Any of the above followed or preceded by a single digit</li>
</ul>
</p><br>
<h4 class="card-title">Protect your password</h4>
<p class="card-text"
<ul>
<li>It is vital to remember your password without writing it down somewhere, so choose a strong password or passphrase that you will easily remember. If you have a lot of passwords, you can use password management tools, but you must choose a strong master key and remember it.</li>
<li>Be aware of how passwords are sent securely across the Internet. URLs (web addresses) that begin with “https://” rather than “http://” are more likely to be secure for use of your password.</li>
<li>If you suspect that someone else may know your current password, change it immediately.</li>
<li>Change your password periodically (every 90 days for a strong password, every 180 days for a passphrase), even if it hasn't been compromised.</li>
<li>Don't type your password while anyone is watching.</li>
<li>Avoid using the same password for multiple websites containing sensitive information.</li>
</ul>
</p><br>
<h4 class="card-title">Follow password policy best practices for system administrators</h4>
<p class="card-text"
<ul>
<li>Configure a minimum password length of at least 10 characters for passwords or 15 for passphrases.</li>
<li>Enforce password history, with at least 10 previous passwords remembered.</li>
<li>Set a minimum password age of 3 days.</li>
<li>Set a maximum password age of 90 days for passwords and 180 days for passphrases.</li>
<li>Enable the setting that requires passwords to meet complexity requirements. This setting can be disabled for passphrases but it is not recommended.</li>
<li>Reset local admin passwords every 180 days. This can be done with the free Netwrix Bulk Password Reset tool.</li>
<li>Reset service accounts passwords once a year during maintenance.</li>
<li>For domain admin accounts, use strong passphrases with a minimum of 15 characters.</li>
<li>Track all password changes by enabling password audit policies. This can be done with Netwrix Auditor for Active Directory.</li>
<li>Create email notifications for password expiration. This can be done with the free Netwrix Password Expiration Notifier tool.</li>
</ul>
</p><br>
</div>
</div>
</div>
</div>
</div>
<?php include('../_inc/scripts.php'); ?>
<script>
function passphraseGen() {
var words = [
"Adam",
"Afghan",
"Alaska",
"Alice",
"Allah",
"Amazon",
"Andrew",
"Anglo",
"Angola",
"Antony",
"April",
"Arab",
"Arctic",
"Athens",
"Austin",
"Bach",
"Baltic",
"Basque",
"Berlin",
"Bible",
"Bombay",
"Bonn",
"Boston",
"Brazil",
"Briton",
"Buddha",
"Burma",
"Caesar",
"Cairo",
"Canada",
"Carl",
"Carol",
"Celtic",
"Chile",
"China",
"Christ",
"Congo",
"Cuba",
"Cyprus",
"Czech",
"Dallas",
"Danish",
"Darwin",
"David",
"Delhi",
"Derby",
"Diana",
"Dublin",
"Dutch",
"East",
"Eden",
"Edward",
"Eric",
"Essex",
"Europe",
"Eve",
"Exodus",
"France",
"French",
"Friday",
"Gandhi",
"Gaul",
"Gemini",
"Geneva",
"George",
"German",
"Gloria",
"God",
"Gothic",
"Greece",
"Greek",
"Hague",
"Haiti",
"Hanoi",
"Harry",
"Havana",
"Hawaii",
"Hebrew",
"Henry",
"Hermes",
"Hindu",
"Hitler",
"Idaho",
"Inca",
"India",
"Indian",
"Iowa",
"Iran",
"Iraq",
"Irish",
"Isaac",
"Isabel",
"Islam",
"Israel",
"Italy",
"Ivan",
"Jack",
"Jacob",
"James",
"Japan",
"Java",
"Jersey",
"Jesus",
"Jewish",
"Jim",
"John",
"Jordan",
"Joseph",
"Judas",
"Judy",
"July",
"June",
"Kansas",
"Karl",
"Kenya",
"Koran",
"Korea",
"Kuwait",
"Laos",
"Latin",
"Leo",
"Libya",
"Lima",
"Lisbon",
"Liz",
"London",
"Louvre",
"Lucy",
"Luther",
"Madame",
"Madrid",
"Malta",
"Maria",
"Mars",
"Mary",
"Maya",
"Mecca",
"Mexico",
"Miami",
"Mickey",
"Milan",
"Monaco",
"Monday",
"Moscow",
"Moses",
"Moslem",
"Mrs",
"Munich",
"Muslim",
"Naples",
"Nazi",
"Nepal",
"Newark",
"Nile",
"Nobel",
"North",
"Norway",
"Ohio",
"Oscar",
"Oslo",
"Oxford",
"Panama",
"Paris",
"Pascal",
"Paul",
"Peking",
"Peru",
"Peter",
"Philip",
"Poland",
"Polish",
"Prague",
"Quebec",
"Rex",
"Rhine",
"Ritz",
"Robert",
"Roman",
"Rome",
"Rosa",
"Russia",
"Sahara",
"Sam",
"Saturn",
"Saudi",
"Saxon",
"Scot",
"Seoul",
"Somali",
"Sony",
"Soviet",
"Spain",
"Stalin",
"Sudan",
"Suez",
"Sunday",
"Sweden",
"Swiss",
"Sydney",
"Syria",
"Taiwan",
"Tarzan",
"Taurus",
"Tehran",
"Teresa",
"Texas",
"Thomas",
"Tibet",
"Tokyo",
"Tom",
"Turk",
"Turkey",
"Uganda",
"Venice",
"Venus",
"Vienna",
"Viking",
"Virgo",
"Warsaw",
"West",
"Yale",
"Yemen",
"York",
"Zaire",
"Zurich",
"aback",
"abbey",
"abbot",
"abide",
"ablaze",
"able",
"aboard",
"abode",
"abort",
"abound",
"about",
"above",
"abroad",
"abrupt",
"absent",
"absorb",
"absurd",
"abuse",
"accent",
"accept",
"access",
"accord",
"accuse",
"ace",
"ache",
"aching",
"acid",
"acidic",
"acorn",
"acre",
"across",
"act",
"action",
"active",
"actor",
"actual",
"acute",
"adapt",
"add",
"added",
"addict",
"adept",
"adhere",
"adjust",
"admire",
"admit",
"adobe",
"adopt",
"adrift",
"adult",
"adverb",
"advert",
"aerial",
"afar",
"affair",
"affect",
"afford",
"afield",
"afloat",
"afraid",
"afresh",
"after",
"again",
"age",
"agency",
"agenda",
"agent",
"aghast",
"agile",
"ago",
"agony",
"agree",
"agreed",
"ahead",
"aid",
"aide",
"aim",
"air",
"airman",
"airy",
"akin",
"alarm",
"albeit",
"album",
"alert",
"alibi",
"alien",
"alight",
"align",
"alike",
"alive",
"alkali",
"all",
"alley",
"allied",
"allow",
"alloy",
"ally",
"almond",
"almost",
"aloft",
"alone",
"along",
"aloof",
"aloud",
"alpha",
"alpine",
"also",
"altar",
"alter",
"always",
"amaze",
"amber",
"ambush",
"amen",
"amend",
"amid",
"amidst",
"amiss",
"among",
"amount",
"ample",
"amuse",
"anchor",
"and",
"anew",
"angel",
"anger",
"angle",
"angry",
"animal",
"ankle",
"annoy",
"annual",
"answer",
"anthem",
"anti",
"any",
"anyhow",
"anyway",
"apart",
"apathy",
"apex",
"apiece",
"appeal",
"appear",
"apple",
"apply",
"apron",
"arcade",
"arcane",
"arch",
"ardent",
"are",
"area",
"argue",
"arid",
"arise",
"arm",
"armful",
"armpit",
"army",
"aroma",
"around",
"arouse",
"array",
"arrest",
"arrive",
"arrow",
"arson",
"art",
"artery",
"artful",
"artist",
"ascent",
"ashen",
"ashore",
"aside",
"ask",
"asleep",
"aspect",
"assay",
"assent",
"assert",
"assess",
"asset",
"assign",
"assist",
"assume",
"assure",
"asthma",
"astute",
"asylum",
"ate",
"atlas",
"atom",
"atomic",
"attach",
"attack",
"attain",
"attend",
"attic",
"auburn",
"audio",
"audit",
"august",
"aunt",
"auntie",
"aura",
"author",
"auto",
"autumn",
"avail",
"avenge",
"avenue",
"avert",
"avid",
"avoid",
"await",
"awake",
"awaken",
"award",
"aware",
"awash",
"away",
"awful",
"awhile",
"axes",
"axiom",
"axis",
"axle",
"aye",
"babe",
"baby",
"back",
"backup",
"bacon",
"bad",
"badge",
"badly",
"bag",
"baggy",
"bail",
"bait",
"bake",
"baker",
"bakery",
"bald",
"ball",
"ballad",
"ballet",
"ballot",
"bamboo",
"ban",
"banal",
"banana",
"band",
"bang",
"bank",
"bar",
"barber",
"bare",
"barely",
"barge",
"bark",
"barley",
"barn",
"baron",
"barrel",
"barren",
"basalt",
"base",
"basic",
"basil",
"basin",
"basis",
"basket",
"bass",
"bat",
"batch",
"bath",
"baton",
"battle",
"bay",
"beach",
"beacon",
"beak",
"beam",
"bean",
"bear",
"beard",
"beast",
"beat",
"beauty",
"become",
"bed",
"beech",
"beef",
"beefy",
"beep",
"beer",
"beet",
"beetle",
"before",
"beggar",
"begin",
"behalf",
"behave",
"behind",
"beige",
"being",
"belief",
"bell",
"belly",
"belong",
"below",
"belt",
"bench",
"bend",
"benign",
"bent",
"berry",
"berth",
"beset",
"beside",
"best",
"bestow",
"bet",
"beta",
"betray",
"better",
"beware",
"beyond",
"bias",
"biceps",
"bicker",
"bid",
"big",
"bigger",
"bike",
"bile",
"bill",
"binary",
"bind",
"biopsy",
"birch",
"bird",
"birdie",
"birth",
"bishop",
"bit",
"bitch",
"bite",
"bitter",
"black",
"blade",
"blame",
"bland",
"blast",
"blaze",
"bleak",
"blend",
"bless",
"blew",
"blind",
"blink",
"blip",
"bliss",
"blitz",
"block",
"blond",
"blood",
"bloody",
"bloom",
"blot",
"blouse",
"blow",
"blue",
"bluff",
"blunt",
"blur",
"blush",
"boar",
"board",
"boast",
"boat",
"bodily",
"body",
"bogus",
"boil",
"bold",
"bolt",
"bomb",
"bond",
"bone",
"bonnet",
"bonus",
"bony",
"book",
"boom",
"boost",
"boot",
"booth",
"booze",
"border",
"bore",
"borrow",
"bosom",
"boss",
"both",
"bother",
"bottle",
"bottom",
"bought",
"bounce",
"bound",
"bounty",
"bout",
"bovine",
"bow",
"bowel",
"bowl",
"box",
"boy",
"boyish",
"brace",
"brain",
"brainy",
"brake",
"bran",
"branch",
"brand",
"brandy",
"brass",
"brave",
"bravo",
"breach",
"bread",
"break",
"breast",
"breath",
"bred",
"breed",
"breeze",
"brew",
"brick",
"bride",
"bridge",
"brief",
"bright",
"brim",
"brine",
"bring",
"brink",
"brisk",
"broad",
"broke",
"broken",
"bronze",
"brook",
"broom",
"brown",
"bruise",
"brush",
"brutal",
"brute",
"bubble",
"buck",
"bucket",
"buckle",
"budget",
"buffet",
"buggy",
"build",
"bulb",
"bulge",
"bulk",
"bulky",
"bull",
"bullet",
"bully",
"bump",
"bumpy",
"bunch",
"bundle",
"bunk",
"bunny",
"burden",
"bureau",
"burial",
"buried",
"burly",
"burn",
"burnt",
"burrow",
"burst",
"bury",
"bus",
"bush",
"bust",
"bustle",
"busy",
"but",
"butler",
"butt",
"butter",
"button",
"buy",
"buyer",
"buzz",
"bye",
"byte",
"cab",
"cabin",
"cable",
"cache",
"cactus",
"cage",
"cake",
"calf",
"call",
"caller",
"calm",
"calmly",
"came",
"camel",
"camera",
"camp",
"campus",
"can",
"canal",
"canary",
"cancel",
"cancer",
"candid",
"candle",
"candy",
"cane",
"canine",
"canoe",
"canopy",
"canvas",
"canyon",
"cap",
"cape",
"car",
"carbon",
"card",
"care",
"career",
"caress",
"cargo",
"carnal",
"carp",
"carpet",
"carrot",
"carry",
"cart",
"cartel",
"case",
"cash",
"cask",
"cast",
"castle",
"casual",
"cat",
"catch",
"cater",
"cattle",
"caught",
"causal",
"cause",
"cave",
"cease",
"celery",
"cell",
"cellar",
"cement",
"censor",
"census",
"cereal",
"cervix",
"chain",
"chair",
"chalk",
"chalky",
"champ",
"chance",
"change",
"chant",
"chaos",
"chap",
"chapel",
"charge",
"charm",
"chart",
"chase",
"chat",
"cheap",
"cheat",
"check",
"cheek",
"cheeky",
"cheer",
"cheery",
"cheese",
"chef",
"cherry",
"chess",
"chest",
"chew",
"chic",
"chick",
"chief",
"child",
"chill",
"chilly",
"chin",
"chip",
"choice",
"choir",
"choose",
"chop",
"choppy",
"chord",
"chorus",
"chose",
"chosen",
"chrome",
"chunk",
"chunky",
"church",
"cider",
"cigar",
"cinema",
"circa",
"circle",
"circus",
"cite",
"city",
"civic",
"civil",
"clad",
"claim",
"clammy",
"clan",
"clap",
"clash",
"clasp",
"class",
"clause",
"claw",
"clay",
"clean",
"clear",
"clergy",
"clerk",
"clever",
"click",
"client",
"cliff",
"climax",
"climb",
"clinch",
"cling",
"clinic",
"clip",
"cloak",
"clock",
"clone",
"close",
"closer",
"closet",
"cloth",
"cloud",
"cloudy",
"clout",
"clown",
"club",
"clue",
"clumsy",
"clung",
"clutch",
"coach",
"coal",
"coarse",
"coast",
"coat",
"coax",
"cobalt",
"cobra",
"coca",
"cock",
"cocoa",
"code",
"coffee",
"coffin",
"cohort",
"coil",
"coin",
"coke",
"cold",
"collar",
"colon",
"colony",
"colt",
"column",
"comb",
"combat",
"come",
"comedy",
"comic",
"commit",
"common",
"compel",
"comply",
"concur",
"cone",
"confer",
"consul",
"convex",
"convey",
"convoy",
"cook",
"cool",
"cope",
"copper",
"copy",
"coral",
"cord",
"core",
"cork",
"corn",
"corner",
"corps",
"corpse",
"corpus",
"cortex",
"cosmic",
"cosmos",
"cost",
"costly",
"cosy",
"cotton",
"couch",
"cough",
"could",
"count",
"county",
"coup",
"couple",
"coupon",
"course",
"court",
"cousin",
"cove",
"cover",
"covert",
"cow",
"coward",
"cowboy",
"crab",
"crack",
"cradle",
"craft",
"crafty",
"crag",
"crane",
"crap",
"crash",
"crate",
"crater",
"crawl",
"crazy",
"creak",
"cream",
"creamy",
"create",
"credit",
"creed",
"creek",
"creep",
"creepy",
"crept",
"crest",
"crew",
"cried",
"crime",
"crisis",
"crisp",
"critic",
"croft",
"crook",
"crop",
"cross",
"crow",
"crowd",
"crown",
"crude",
"cruel",
"cruise",
"crunch",
"crush",
"crust",
"crux",
"cry",
"crypt",
"cube",
"cubic",
"cuckoo",
"cuff",
"cult",
"cup",
"curb",
"cure",
"curfew",
"curl",
"curry",
"curse",
"cursor",
"curve",
"custom",
"cut",
"cute",
"cycle",
"cyclic",
"cynic",
"dad",
"daddy",
"dagger",
"daily",
"dairy",
"daisy",
"dale",
"damage",
"damn",
"damp",
"dampen",
"dance",
"danger",
"dare",
"dark",
"darken",
"dash",
"data",
"date",
"dawn",
"day",
"dead",
"deadly",
"deaf",
"deal",
"dealer",
"dean",
"dear",
"death",
"debate",
"debit",
"debris",
"debt",
"debtor",
"decade",
"decay",
"decent",
"decide",
"deck",
"decor",
"decree",
"deduce",
"deed",
"deep",
"deeply",
"deer",
"defeat",
"defect",
"defend",
"defer",
"define",
"defy",
"degree",
"deity",
"delay",
"delete",
"delta",
"demand",
"demise",
"demo",
"demon",
"demure",
"denial",
"denote",
"dense",
"dental",
"deny",
"depart",
"depend",
"depict",
"deploy",
"depot",
"depth",
"deputy",
"derive",
"desert",
"design",
"desire",
"desist",
"desk",
"detail",
"detect",
"deter",
"detest",
"detour",
"device",
"devil",
"devise",
"devoid",
"devote",
"devour",
"dial",
"diary",
"dice",
"dictum",
"did",
"die",
"diesel",
"diet",
"differ",
"digest",
"digit",
"dine",
"dinghy",
"dinner",
"diode",
"dire",
"direct",
"dirt",
"dirty",
"disc",
"disco",
"dish",
"disk",
"dismal",
"dispel",
"ditch",
"dive",
"divert",
"divide",
"divine",
"dizzy",
"docile",
"dock",
"doctor",
"dog",
"dogma",
"dole",
"doll",
"dollar",
"dolly",
"domain",
"dome",
"domino",
"donate",
"done",
"donkey",
"donor",
"doom",
"door",
"dorsal",
"dose",
"double",
"doubt",
"dough",
"dour",
"dove",
"down",
"dozen",
"draft",
"drag",
"dragon",
"drain",
"drama",
"drank",
"draw",
"drawer",
"dread",
"dream",
"dreary",
"dress",
"drew",
"dried",
"drift",
"drill",
"drink",
"drip",
"drive",
"driver",
"drop",
"drove",
"drown",
"drug",
"drum",
"drunk",
"dry",
"dual",
"duck",
"duct",
"due",
"duel",
"duet",
"duke",
"dull",
"duly",
"dumb",
"dummy",
"dump",
"dune",
"dung",
"duress",
"during",
"dusk",
"dust",
"dusty",
"duty",
"dwarf",
"dwell",
"dyer",
"dying",
"dynamo",
"each",
"eager",
"eagle",
"ear",
"earl",
"early",
"earn",
"earth",
"ease",
"easel",
"easily",
"easter",
"easy",
"eat",
"eaten",
"eater",
"echo",
"eddy",
"edge",
"edible",
"edict",
"edit",
"editor",
"eerie",
"eerily",
"effect",
"effort",
"egg",
"ego",
"eight",
"eighth",
"eighty",
"either",
"elbow",
"elder",
"eldest",
"elect",
"eleven",
"elicit",
"elite",
"else",
"elude",
"elves",
"embark",
"emblem",
"embryo",
"emerge",
"emit",
"empire",
"employ",
"empty",
"enable",
"enamel",
"end",
"endure",
"enemy",
"energy",
"engage",
"engine",
"enjoy",
"enlist",
"enough",
"ensure",
"entail",
"enter",
"entire",
"entry",
"envoy",
"envy",
"enzyme",
"epic",
"epoch",
"equal",
"equate",
"equip",
"equity",
"era",
"erase",
"erect",
"erode",
"erotic",
"errant",
"error",
"escape",
"escort",
"essay",
"estate",
"esteem",
"ethic",
"ethnic",
"evade",
"even",
"event",
"ever",
"every",
"evict",
"evil",
"evoke",
"evolve",
"exact",
"exam",
"exceed",
"excel",
"except",
"excess",
"excise",
"excite",
"excuse",
"exempt",
"exert",
"exile",
"exist",
"exit",
"exotic",
"expand",
"expect",
"expert",
"expire",
"export",
"expose",
"extend",
"extra",
"eye",
"eyed",
"fabric",
"face",
"facial",
"fact",
"factor",
"fade",
"fail",
"faint",
"fair",
"fairly",
"fairy",
"faith",
"fake",
"falcon",
"fall",
"false",
"falter",
"fame",
"family",
"famine",
"famous",
"fan",
"fancy",
"far",
"farce",
"fare",
"farm",
"farmer",
"fast",
"fasten",
"faster",
"fat",
"fatal",
"fate",
"father",
"fatty",
"fault",
"faulty",
"fauna",
"fear",
"feast",
"feat",
"fed",
"fee",
"feeble",
"feed",
"feel",
"feet",
"fell",
"fellow",
"felt",
"female",
"fence",
"fend",
"ferry",
"fetal",
"fetch",
"feudal",
"fever",
"few",
"fewer",
"fiance",
"fiasco",
"fiddle",
"field",
"fiend",
"fierce",
"fiery",
"fifth",
"fifty",
"fig",
"fight",
"figure",
"file",
"fill",
"filled",
"filler",
"film",
"filter",
"filth",
"filthy",
"final",
"finale",
"find",
"fine",
"finger",
"finish",
"finite",
"fire",
"firm",
"firmly",
"first",
"fiscal",
"fish",
"fisher",
"fist",
"fit",
"fitful",
"five",
"fix",
"flag",
"flair",
"flak",
"flame",
"flank",
"flap",
"flare",
"flash",
"flask",
"flat",
"flaw",
"fled",
"flee",
"fleece",
"fleet",
"flesh",
"fleshy",
"flew",
"flick",
"flight",
"flimsy",
"flint",
"flirt",
"float",
"flock",
"flood",
"floor",
"floppy",
"flora",
"floral",
"flour",
"flow",
"flower",
"fluent",
"fluffy",
"fluid",
"flung",
"flurry",
"flush",
"flute",
"flux",
"fly",
"flyer",
"foal",
"foam",
"focal",
"focus",
"fog",
"foil",
"fold",
"folk",
"follow",
"folly",
"fond",
"fondly",
"font",
"food",
"fool",
"foot",
"for",
"forbid",
"force",
"ford",
"forest",
"forge",
"forget",
"fork",
"form",
"formal",
"format",
"former",
"fort",
"forth",
"forty",
"forum",
"fossil",
"foster",
"foul",
"found",
"four",
"fourth",
"fox",
"foyer",
"frail",
"frame",
"franc",
"frank",
"fraud",
"free",
"freed",
"freely",
"freer",
"freeze",
"frenzy",
"fresh",
"friar",
"fridge",
"fried",
"friend",
"fright",
"fringe",
"frock",
"frog",
"from",
"front",
"frost",
"frosty",
"frown",
"frozen",
"frugal",
"fruit",
"fudge",
"fuel",
"fulfil",
"full",
"fully",
"fun",
"fund",
"funny",
"fur",
"furry",
"fury",
"fuse",
"fusion",
"fuss",
"fussy",
"futile",
"future",
"fuzzy",
"gadget",
"gag",
"gain",
"gala",
"galaxy",
"gale",
"gall",
"galley",
"gallon",
"gallop",
"gamble",
"game",
"gamma",
"gang",
"gap",
"garage",
"garden",
"garlic",
"gas",
"gasp",
"gate",
"gather",
"gauge",
"gaunt",
"gave",
"gay",
"gaze",
"gear",
"geese",
"gender",
"gene",
"genial",
"genius",
"genre",
"gentle",
"gently",
"gentry",
"genus",
"get",
"ghetto",
"ghost",
"giant",
"gift",
"giggle",
"gill",
"gilt",
"ginger",
"girl",
"give",
"given",
"glad",
"glade",
"glance",
"gland",
"glare",
"glass",
"glassy",
"gleam",
"glee",
"glide",
"global",
"globe",
"gloom",
"gloomy",
"glory",
"gloss",
"glossy",
"glove",
"glow",
"glue",
"goal",
"goat",
"gold",
"golden",
"golf",
"gone",
"gong",
"good",
"goose",
"gorge",
"gory",
"gosh",
"gospel",
"gossip",
"got",
"govern",
"gown",
"grab",
"grace",
"grade",
"grain",
"grand",
"grant",
"grape",
"graph",
"grasp",
"grass",
"grassy",
"grate",
"grave",
"gravel",
"gravy",
"gray",
"grease",
"greasy",
"great",
"greed",
"greedy",
"green",
"greet",
"grew",
"grey",
"grid",
"grief",
"grill",
"grim",
"grin",
"grind",
"grip",
"grit",
"gritty",
"groan",
"groin",
"groom",
"groove",
"gross",
"ground",
"group",
"grove",
"grow",
"grown",
"growth",
"grudge",
"grunt",
"guard",
"guess",
"guest",
"guide",
"guild",
"guilt",
"guilty",
"guise",
"guitar",
"gulf",
"gully",
"gun",
"gunman",
"guru",
"gut",
"guy",
"gypsy",
"habit",
"hack",
"had",
"hail",
"hair",
"hairy",
"hale",
"half",
"hall",
"halt",
"hamlet",
"hammer",
"hand",
"handle",
"handy",
"hang",
"hangar",
"happen",
"happy",
"harass",
"hard",
"harder",
"hardly",
"hare",
"harem",
"harm",
"harp",
"harsh",
"has",
"hash",
"hassle",
"haste",
"hasten",
"hasty",
"hat",
"hatch",
"hate",
"haul",
"haunt",
"have",
"haven",
"havoc",
"hawk",
"hazard",
"haze",
"hazel",
"hazy",
"head",
"heal",
"health",
"heap",
"hear",
"heard",
"heart",
"hearth",
"hearty",
"heat",
"heater",
"heaven",
"heavy",
"heck",
"hectic",
"hedge",
"heel",
"hefty",
"height",
"heir",
"held",
"helium",
"helix",
"hell",
"hello",
"helm",
"helmet",
"help",
"hemp",
"hence",
"her",
"herald",
"herb",
"herd",
"here",
"hereby",
"hernia",
"hero",
"heroic",
"heroin",
"hey",
"heyday",
"hick",
"hidden",
"hide",
"high",
"higher",
"highly",
"hill",
"him",
"hind",
"hint",
"hippy",
"hire",
"his",
"hiss",
"hit",
"hive",
"hoard",
"hoarse",
"hobby",
"hockey",
"hold",
"holder",
"hole",
"hollow",
"holly",
"holy",
"home",
"honest",
"honey",
"hood",
"hook",
"hope",
"horn",
"horny",
"horrid",
"horror",
"horse",
"hose",
"host",
"hot",
"hotel",
"hound",
"hour",
"house",
"hover",
"how",
"huge",
"hull",
"human",
"humane",
"humble",
"humid",
"hung",
"hunger",
"hungry",
"hunt",
"hurdle",
"hurl",
"hurry",
"hurt",
"hush",
"hut",
"hybrid",
"hymn",
"hyphen",
"ice",
"icing",
"icon",
"idea",
"ideal",
"idiom",
"idiot",
"idle",
"idly",
"idol",
"ignite",
"ignore",
"ill",
"image",
"immune",
"impact",
"imply",
"import",
"impose",
"incest",
"inch",
"income",
"incur",
"indeed",
"index",
"indoor",
"induce",
"inept",
"inert",
"infant",
"infect",
"infer",
"influx",
"inform",
"inject",
"injure",
"injury",
"inlaid",
"inland",
"inlet",
"inmate",
"inn",
"innate",
"inner",
"input",
"insane",
"insect",
"insert",
"inset",
"inside",
"insist",
"insult",
"insure",
"intact",
"intake",
"intend",
"inter",
"into",
"invade",
"invent",
"invest",
"invite",
"invoke",
"inward",
"iron",
"ironic",
"irony",
"island",
"isle",
"issue",
"itch",
"item",
"itself",
"ivory",
"jacket",
"jade",
"jaguar",
"jail",
"jargon",
"jaw",
"jazz",
"jeep",
"jelly",
"jerky",
"jest",
"jet",
"jewel",
"job",
"jock",
"jockey",
"join",
"joint",
"joke",
"jolly",
"jolt",
"joy",
"joyful",
"joyous",
"judge",
"juice",
"juicy",
"jumble",
"jumbo",
"jump",
"jungle",
"junior",
"junk",
"junta",
"jury",
"just",
"karate",
"keel",
"keen",
"keep",
"keeper",
"kept",
"kernel",
"kettle",
"key",
"khaki",
"kick",
"kid",
"kidnap",
"kidney",
"kill",
"killer",
"kin",
"kind",
"kindly",
"king",
"kiss",
"kite",
"kitten",
"knack",
"knee",
"knew",
"knife",
"knight",
"knit",
"knob",
"knock",
"knot",
"know",
"known",
"label",
"lace",
"lack",
"lad",
"ladder",
"laden",
"lady",
"lagoon",
"laity",
"lake",
"lamb",
"lame",
"lamp",
"lance",
"land",
"lane",
"lap",
"lapse",
"large",
"larval",
"laser",
"last",
"latch",
"late",
"lately",
"latent",
"later",
"latest",
"latter",
"laugh",
"launch",
"lava",
"lavish",
"law",
"lawful",
"lawn",
"lawyer",
"lay",
"layer",
"layman",
"lazy",
"lead",
"leader",
"leaf",
"leafy",
"league",
"leak",
"leaky",
"lean",
"leap",
"learn",
"lease",
"leash",
"least",
"leave",
"led",
"ledge",
"left",
"leg",
"legacy",
"legal",
"legend",
"legion",
"lemon",
"lend",
"length",
"lens",
"lent",
"leper",
"lesion",
"less",
"lessen",
"lesser",
"lesson",
"lest",
"let",
"lethal",
"letter",
"level",
"lever",
"levy",
"lewis",
"liable",
"liar",
"libel",
"lice",
"lick",
"lid",
"lie",
"lied",
"life",
"lift",
"light",
"like",
"likely",
"limb",
"lime",
"limit",
"limp",
"line",
"linear",
"linen",
"linger",
"link",
"lion",
"lip",
"liquid",
"liquor",
"list",
"listen",
"lit",
"live",
"lively",
"liver",
"lizard",
"load",
"loaf",
"loan",
"lobby",
"lobe",
"local",
"locate",
"lock",
"locus",
"lodge",
"loft",
"lofty",
"log",
"logic",
"logo",
"lone",
"lonely",
"long",
"longer",
"look",
"loop",
"loose",
"loosen",
"loot",
"lord",
"lorry",
"lose",
"loss",
"lost",
"lot",
"lotion",
"lotus",
"loud",
"loudly",
"lounge",
"lousy",
"love",
"lovely",
"lover",
"low",
"lower",
"lowest",
"loyal",
"lucid",
"luck",
"lucky",
"lull",
"lump",
"lumpy",
"lunacy",
"lunar",
"lunch",
"lung",
"lure",
"lurid",
"lush",
"lust",
"lute",
"luxury",
"lying",
"lymph",
"lynch",
"lyric",
"macho",
"macro",
"mad",
"madam",
"made",
"mafia",
"magic",
"magma",
"magnet",
"magnum",
"maid",
"maiden",
"mail",
"main",
"mainly",
"major",
"make",
"maker",
"male",
"malice",
"mall",
"malt",
"mammal",
"manage",
"mane",
"mania",
"manic",
"manner",
"manor",
"mantle",
"manual",
"manure",
"many",
"map",
"maple",
"marble",
"march",
"mare",
"margin",
"marina",
"mark",
"market",
"marry",
"marsh",
"martin",
"martyr",
"mask",
"mason",
"mass",
"mast",
"master",
"match",
"mate",
"matrix",
"matter",
"mature",
"maxim",
"may",
"maybe",
"mayor",
"maze",
"mead",
"meadow",
"meal",
"mean",
"meant",
"meat",
"medal",
"media",
"median",
"medic",
"medium",
"meet",
"mellow",
"melody",
"melon",
"melt",
"member",
"memo",
"memory",
"menace",
"mend",
"mental",
"mentor",
"menu",
"mercy",
"mere",
"merely",
"merge",
"merger",
"merit",
"merry",
"mesh",
"mess",
"messy",
"met",
"metal",
"meter",
"method",
"methyl",
"metric",
"metro",
"mid",
"midday",
"middle",
"midst",
"midway",
"might",
"mighty",
"mild",
"mildew",
"mile",
"milk",
"milky",
"mill",
"mimic",
"mince",
"mind",
"mine",
"mini",
"mink",
"minor",
"mint",
"minus",
"minute",
"mirror",
"mirth",
"misery",
"miss",
"mist",
"misty",
"mite",
"mix",
"moan",
"moat",
"mobile",
"mock",
"mode",
"model",
"modem",
"modern",
"modest",
"modify",
"module",
"moist",
"molar",
"mole",
"molten",
"moment",
"money",
"monies",
"monk",
"monkey",
"month",
"mood",
"moody",
"moon",
"moor",
"moral",
"morale",
"morbid",
"more",
"morgue",
"mortal",
"mortar",
"mosaic",
"mosque",
"moss",
"most",
"mostly",
"moth",
"mother",
"motion",
"motive",
"motor",
"mould",
"mount",
"mourn",
"mouse",
"mouth",
"move",
"movie",
"much",
"muck",
"mucus",
"mud",
"muddle",
"muddy",
"mule",
"mummy",
"murder",
"murky",
"murmur",
"muscle",
"museum",
"music",
"mussel",
"must",
"mutant",
"mute",
"mutiny",
"mutter",
"mutton",
"mutual",
"muzzle",
"myopic",
"myriad",
"myself",
"mystic",
"myth",
"nadir",
"nail",
"naked",
"name",
"namely",
"nape",
"napkin",
"narrow",
"nasal",
"nasty",
"nation",
"native",
"nature",
"nausea",
"naval",
"nave",
"navy",
"near",
"nearer",
"nearly",
"neat",
"neatly",
"neck",
"need",
"needle",
"needy",
"negate",
"neon",
"nephew",
"nerve",
"nest",
"neural",
"never",
"newly",
"next",
"nice",
"nicely",
"niche",
"nickel",
"niece",
"night",
"nimble",
"nine",
"ninety",
"ninth",
"noble",
"nobody",
"node",
"noise",
"noisy",
"non",
"none",
"noon",
"nor",
"norm",
"normal",
"nose",
"nosy",
"not",
"note",
"notice",
"notify",
"notion",
"nought",
"noun",
"novel",
"novice",
"now",
"nozzle",
"nude",
"null",
"numb",
"number",
"nurse",
"nylon",
"nymph",
"oak",
"oasis",
"oath",
"obese",
"obey",
"object",
"oblige",
"oboe",
"obtain",
"occult",
"occupy",
"occur",
"ocean",
"octave",
"odd",
"off",
"offend",
"offer",
"office",
"offset",
"often",
"oil",
"oily",
"okay",
"old",
"older",
"oldest",
"olive",
"omega",
"omen",
"omit",
"once",
"one",
"onion",
"only",
"onset",
"onto",
"onus",
"onward",
"opaque",
"open",
"openly",
"opera",
"opium",
"oppose",
"optic",
"option",
"oracle",
"oral",
"orange",
"orbit",
"orchid",
"ordeal",
"order",
"organ",
"orgasm",
"orient",
"origin",
"ornate",
"orphan",
"other",
"otter",
"ought",
"ounce",
"our",
"out",
"outer",
"output",
"outset",
"oval",
"oven",
"over",
"overt",
"owe",
"owing",
"owl",
"own",
"owner",
"oxide",
"oxygen",
"oyster",
"ozone",
"pace",
"pack",
"packet",
"pact",
"paddle",
"paddy",
"pagan",
"page",
"paid",
"pain",
"paint",
"pair",
"palace",
"pale",
"palm",
"panel",
"panic",
"papa",
"papal",
"paper",
"parade",
"parcel",
"pardon",
"parent",
"parish",
"park",
"parody",
"parrot",
"part",
"partly",
"party",
"pass",
"past",
"paste",
"pastel",
"pastor",
"pastry",
"pat",
"patch",
"patent",
"path",
"patio",
"patrol",
"patron",
"pause",
"pave",
"pawn",
"pay",
"peace",
"peach",
"peak",
"pear",
"pearl",
"pedal",
"peel",
"peer",
"pelvic",
"pelvis",
"pen",
"penal",
"pence",
"pencil",
"penis",
"penny",
"people",
"pepper",
"per",
"perch",
"peril",
"period",
"perish",
"permit",
"person",
"pest",
"petite",
"petrol",
"petty",
"phase",
"phone",
"photo",
"phrase",
"piano",
"pick",
"picket",
"picnic",
"pie",
"piece",
"pier",
"pierce",
"piety",
"pig",
"pigeon",
"piggy",
"pike",
"pile",
"pill",
"pillar",
"pillow",
"pilot",
"pin",
"pinch",
"pine",
"pink",
"pint",
"pious",
"pipe",
"pirate",
"piss",
"pistol",
"piston",
"pit",
"pitch",
"pity",
"pivot",
"pixel",
"pizza",
"place",
"placid",
"plague",
"plain",
"plan",
"plane",
"planet",
"plank",
"plant",
"plasma",
"plate",
"play",
"player",
"plea",
"plead",
"please",
"pledge",
"plenty",
"plenum",
"plight",
"plot",
"ploy",
"plug",
"plum",
"plump",
"plunge",
"plural",
"plus",
"plush",