password generator

index ยท password generator
usable?:

password strength:

hash equivalent (do not use) comparasion against 128 bit:

f054bbd2f5ebab9cb5571000b2c50c02





visualization of bit calculating in an average computer in 2 minutes
click to see picture

Recommendations

Creating strong passwords is essential for your online security. Follow these guidelines to help protect your accounts:

FAQ:

why i can only choose between 12 and 31 length?
below 12 characters is not recommended at any level that isn't for fun, it will be just reckless to do so. the >31 limit is because they will be uncompatible with some crappy websites (see tiktok with 20 character limit). other solution could be not using trash websites like tiktok. if you want a really long password, click here


why aren't there more options like extended ascii or unicode characters?
same reason as before: they will be uncompatible with some crappy websites, so it's just not necesary to include them


12 Nov 2023 Update

removed dark theme, and changed the code from
const bucketSize = maxMultiple / range;
return min + Math.floor(randomValue / bucketSize);
to
return min + (randomValue % range);

Permalink: https://pastebin.com/uPjJGyFD


9 Nov 2023 Update

did some things (and added native dark theme)

Permalink: https://pastebin.com/e3Bih0J5



8 Nov 2023 Update

- Added a password list that you can download and copy by clicking it.
- Added favicon.
- Corrected the news board and uppercased it on accident.
- Added some more stuff.

click to see code
function copyAndDownload() {
  const passwordListTextarea = document.getElementById("passwordlist");
  
  const textContent = passwordListTextarea.value;
  
  const blob = new Blob([textContent], { type: "text/plain" });
  
  const url = URL.createObjectURL(blob);
  
  const downloadLink = document.createElement("a");
  downloadLink.href = url;
  downloadLink.download = "password_list.txt";
  
  downloadLink.click();
  
  URL.revokeObjectURL(url);
}

Permalink: https://pastebin.com/4Wiq8CRS


5 Nov 2023 Update

Fixed a bug in generatePassword() that made the password sometimes shorter than the user's input. Also changed getRandomInt() to:

click to see code
function getRandomInt(min, max) {
  const cryptoObj = window.crypto || window.msCrypto;
  const range = max - min + 1;
  if (range <= 0) {
    throw new Error('Invalid range');
  }

  const maxMultiple = Math.floor(0xFFFFFFFF / range) * range;

  let randomValue;
  do {
    const array = new Uint32Array(1);
    cryptoObj.getRandomValues(array);
    randomValue = array[0];
  } while (randomValue >= maxMultiple);

  const bucketSize = maxMultiple / range;
  return min + Math.floor(randomValue / bucketSize);
}

4 Nov 2023 Update

Added crypto randomness:

click to see code
let password = "";

for (let i = 0; i < length; i++) {
  const randomIndex = getRandomInt(0, allChars.length);
  password += allChars.charAt(randomIndex);
}

function getRandomInt(min, max) {
  const cryptoObj = window.crypto || window.msCrypto;
  const array = new Uint32Array(1);
  cryptoObj.getRandomValues(array);
  return min + (array[0] / 0xFFFFFFFF) * (max - min + 1);
}

Old version: https://pastebin.com/um2W0W8q


3 Nov 2023

Made under 10 minutes! (Using ChatGPT 3.5) Still adding stuff.

Second ChatGPT-3.5 conversation: https://chat.openai.com/share/44f5d06b-f855-40bb-85fb-2ae02d1aa41b

Original ChatGPT-3.5 conversation: https://chat.openai.com/share/bf48570d-0cbd-4d54-a763-0ade7e0c574d


key
AI generated cool art