When creating accounts for younger students, passwords can be a hassle. They should be unique, hard to guess, and easy to type. To help solve this problem, Codemoji built a tool called DinoPass to generate passwords that meet all these requirements. Each password follows the format NounAdjectiveNumber (all lowercase). When I’m creating a handful of accounts for kids to use, this is my go-to source for passwords. It’s quick and easy, and the kids absolutely love the crazy combinations it creates.

But sometimes, I need to create accounts in bulk. Some services (such as Scratch) allow you to upload a CSV file with usernames and passwords. This makes the process quick and painless once you have a list of passwords, but manually copying and pasting from DinoPass for an entire class, grade, or school would get extremely tedious.

Add-on Template

I created an add-on for Google Sheets that generates passwords in a similar style to DinoPass. To use it, make a copy of this template. See the following tutorial for a demonstration. Click here to open the tutorial in a separate window.

9 STEPS


1 Make a copy of the Password Generator Template.

Step 1 image

2 Set up your spreadsheet however you'd like (e.g. type a column header for passwords)

Step 2 image

3 Select the cells you'd like to fill with passwords. You can select as many rows/columns as you'd like.

Step 3 image

3b Drop

Step 3b image

4 Click Password Generator
This menu sometimes takes a few extra seconds to show up after the spreadsheet loads. If you don't see it for a while, refresh the page.

Step 4 image

5 Click Create passwords

Step 5 image

6 The first time you run the add-on, you'll need to authorize it.

Click Continue

Step 6 image

7 Click your email address

Step 7 image

8 Scroll down and click Allow

Step 8 image

9 Now you'll see a list of fun, unique passwords in the cells you selected.

Step 9 image

Here's an interactive tutorial for the visual learners

https://www.iorad.com/player/1570698/Google-Sheets-Password-Generator-add-on

A few words of caution

I’ve done my best to make sure the word combinations and numbers are school appropriate kid-friendly. However, once your passwords are generated, I’d recommend double checking them before giving them to students. If you notice any problematic combinations, let me know and I’ll revise the code.

These passwords should not be used for high-security purposes. These are more secure than sharing the same password with everyone or assigning passwords in a predictable/numeric way, but they are not on par with modern best security practices. Changing the initial list of words from which passwords are generated (see below) may slightly improve security, but is not a substitute for a strong, randomly-generated password. Proceed with caution.

Preventing duplicates

Craig Ham pointed out that in the original version of the template, it was possible to get duplicate passwords when generating in bulk. I found about 5-6 duplicates per 1,000 passwords when I tested it. I’ve updated the code to check for and prevent duplicates when generating passwords. If you previously copied the old version, you’ll need to make a new copy to get the updates.

Duplicates are still possible if you generate passwords at several different times unless you replace the previous passwords. If you’re familiar with Google Sheets formulas, you can use unique() and vlookup() to write a solution that works for your sheet. If you aren’t familiar with formulas or want a faster solution, check out this add-on (not developed by me).

Customizing the passwords

If you don’t mind getting your hands a little bit dirty, you can customize the code that generates the passwords. It’s not as scary as that might sound! First, go to the Tools menu and click Script editor.

Screenshot of the tools menu in Google Sheets with a cursor hovering over the Script editor option

This will open a new window that shows the JavaScript source code for the plugin. The lines you need to change to customize the passwords are at the top of the file.

Changing the word lists

The first two lines of code in the file that begin var adjectives and var nouns contain all of the adjectives and nouns the generator randomly selects from to build the passwords. You can change these lines to add or remove words. Maybe you want all of your passwords to follow a certain theme? Maybe you want more combinations of passwords? Whatever your needs are, customize this to your heart’s content!

All of the words in each list must be between the two square brackets, [ and ]. Each individual word must be enclosed in quotation marks. Use commas to separate multiple words.

Example:

var adjectives = ["big", "medium", "small"];
var nouns = ["dog", "cat", "mouse", "duck"];

Preventing certain numbers and combinations of words

You may realize there are specific combinations of words or numbers you want to avoid in your passwords. You can set this on the lines that start var numbers_to_avoid (for numbers) and var combinations_to_avoid (for words). Whenever the generator creates a password, it will check the adjective-noun combination and the number against these lists. If the words/number it came up with appears in the list, it will try again.

Just like the word lists, all of the words/numbers to avoid must go in between the square brackets, [ and ], and be separated by commas. The numbers do NOT need to be in quotation marks, but the word combinations do. The passwords do not have spaces in them, so be sure to leave out spaces in any word combinations you wish to avoid.

Example:

var numbers_to_avoid = [11, 13, 15, 17, 19];
var combinations_to_avoid = ["bigmouse", "smallduck", "mediumdog"];

Because the generator pulls from the lists of adjectives and nouns, you only need to consider combinations of words on the list to avoid. For example, if your adjectives list contains only "big" and "small", you would not need to put "mediumpig" in your list of combinations to avoid because "medium" could never be chosen as a possible word.

The numbers are always between 11 and 99, so you only need to consider numbers to avoid from that range.

Conclusion

I hope this is helpful as you create accounts for students! While older kids may be able to come up with their own passwords, this is perfect for lower grades. I’d love to hear any feedback you have about this add-on. In the future, I’m planning to write more in depth about how I use this add-on in my workflow for setting up student accounts. Stay tuned!