sethserver / Security

Strong and Secure Random Password Generator

By Seth Black Updated April 30, 2025

...

copyregen

Quickstart: Click "regen" multiple times, then click "copy" to copy the password to your clipboard. If you understand pseudo-random number generators feel free to modify the parameters below to your heart's content.

A magician waves his magic wand over his magic top hat saying, "abracadabra". The top hat responds, "Incorrect magic word, please try again." The magician, confused, responds with "@bracAd4br@?"

This strong random password generator creates strong, secure, random plain text passwords using the PCG32 random number generator without sending the password over the internet or storing the generated password on a server. If you are still uncomfortable using this utility you can generate multiple passwords, save them to your device and use different parts from each to create a unique password, otherwise you may want to try something like using the Python REPL to generate a strong password.

I developed this password generator because I don't trust the security and randomness of passwords generated by other password generators; plus, I like a challenge. I also wanted to test out Melissa E. O'Neill's implementation of the PCG32 pseudo-random number generator with an environment-based seed. By generating multiple passwords using this strong password generator, saving them to my local computer then mixing them I can confidently trust in the uniqueness and security of my passwords. The number of password breaches each year is staggering. By using a unique, random password for every account I can rest assured that even if one system is hacked all of my other accounts' passwords are safe.

I've also made a genuine effort to keep this page as simple as possible in order to reduce the attack surface. Feel free to inspect the page source and you'll find there are no javascript tracking scripts, no pixels, no third-party resources, no ads, and no embedded social media. All variables are generated in-browser and not on the server-side and no requests are made when you click "generate", "copy" or when you modify the algroithm's parameters.

User Security FAQ

Should I use the same password for multiple websites or accounts?

No. Always use a unique password for every single account. If one account is compromised, using unique passwords prevents attackers from accessing your other accounts.

What makes a password strong?

A strong password has several characteristics:

  • Length: Aim for a minimum of 16 characters. Longer is generally better.
  • Complexity: Include a mix of uppercase letters, lowercase letters, numbers, and special symbols (like !, @, #, $, %).
  • Randomness: Avoid predictable patterns or easily guessable information. This generator helps ensure randomness.
How long should my passwords be?

Ensure passwords are at a minimum sixteen (16) characters long. Generally, the longer the password, the more secure it is against brute-force attacks.

What kind of information should I AVOID using in my passwords?

Never use easily guessable information. This includes:

  • Common dictionary words.
  • Personal details like birthdays, names (yours, family, pets), addresses, phone numbers, postal codes, or ID numbers.
  • Obvious or common passwords like "P@ssw0rd", "password123", or "qwerty".
Is it okay to just change a small part of my password for different sites (e.g., MyPasswordGmail, MyPasswordFacebook)?

No, this is a bad practice. If one password using this pattern is compromised, attackers can easily guess the passwords for your other accounts. Each password should be completely unique.

Is this password generator safe to use? Are my generated passwords stored?

Yes, this generator is designed with security in mind. It runs entirely in your browser (client-side) using JavaScript. No passwords or parameters are sent over the internet, and nothing is stored on our servers. You can verify this by inspecting the page source code and network activity.

How truly random are the passwords generated here?

This tool uses the PCG32 (Permuted Congruential Generator), a well-regarded pseudo-random number generator known for its statistical randomness and unpredictability, seeded with values from your browser's secure crypto.getRandomValues function and the current timestamp to enhance uniqueness for each session.

What should I do with the password after I generate it?

Immediately copy the generated password and save it securely, ideally in a trusted password manager. Then, use it to update your password on the specific website or service you need it for. Avoid saving it in plain text files or insecure notes.

What do the 'Seed' and 'Stream' options do? Should I change them?

These are parameters for the underlying PCG32 random number generator. For most users, leaving these fields blank or using the auto-generated values is recommended, as the generator automatically uses secure random values. Advanced users can input specific numbers to generate deterministic (repeatable) sequences if needed for specific technical purposes, but this is generally not advised for creating secure account passwords.

How am I supposed to remember all these unique, complex passwords?

You're not! Trying to memorize dozens of unique, complex passwords is practically impossible. The most secure and practical solution is to use a reputable password manager.

What is a password manager and should I use one?

A password manager is a secure, encrypted application designed to store all your different passwords (and other sensitive information). You only need to remember one strong master password to unlock the manager. It can generate, save, and autofill passwords for you. Yes, using a trusted password manager is highly recommended for good security hygiene.

Are password managers safe?

Reputable password managers use strong encryption (like AES-256) to protect your stored data, making them very secure. Ensure you choose a well-known, trusted provider, use a very strong master password for the manager itself, and enable 2FA on your password manager account.

Should I let my web browser save my passwords?

While convenient, browser password managers are generally considered less secure than dedicated password manager applications. They can be more vulnerable if someone gains access to your unlocked computer user account. Using a dedicated, encrypted password manager is recommended.

Is it safe to write my password down?

Avoid writing passwords down, especially on sticky notes attached to your computer or anywhere easily visible. If you must write them down, store them securely and offline, locked away where others cannot find them. Using a reputable password manager is a much safer alternative.

Is it safe to store passwords in the cloud?

Storing passwords unencrypted in cloud storage (like Google Drive notes, Dropbox text files) is very risky. Reputable password managers often use cloud syncing, but they encrypt your password database securely *before* it's synced, making it a much safer approach.

What's the difference between a password and a passphrase?

A traditional password is often a shorter string of mixed characters (like Tr0ub4dor&3). A passphrase is typically longer, consisting of multiple random words (like correct-horse-battery-staple). Both can be secure if generated properly (long and random). Passphrases generated by tools like our Passphrase Generator can be easier for humans to remember or type while still being very secure due to their length.

Any tips for creating memorable passwords if I can't use a generator/manager?

If you need to memorize a password, consider using a passphrase approach (see above). Think of a sentence or phrase meaningful only to you, and use the first letter (or first few letters) of each word, potentially substituting some letters with numbers or symbols. For example, "My favorite pizza place is Luigi's on 5th street!" could become "Mfp!iLo5s!". Make sure it's still long and complex. However, using a password manager is strongly preferred.

How can I make sure the website I'm logging into is legitimate and secure?
  • Check for HTTPS: Ensure the website address starts with "https://" and has a valid lock icon in the browser bar, indicating an encrypted connection.
  • Verify the Domain: Double-check that the website address (URL) is exactly what you expect it to be, with no misspellings or unusual characters. Using bookmarks for important sites helps avoid mistyped URLs.
  • Be Wary of Links: Do not trust login forms reached by clicking links in unexpected emails or messages. Navigate to the site directly or use a trusted bookmark instead.
What is phishing and how can I avoid it?

Phishing is when attackers try to trick you into revealing sensitive information (like passwords or credit card numbers) by pretending to be a legitimate entity (like your bank or a popular website) via email, messages, or fake websites. Avoid clicking suspicious links, always verify the sender's address, check website URLs carefully, and never enter sensitive data on a site you reached via an unexpected link.

What should I do if I think one of my accounts has been compromised?

Act quickly! 1. Immediately change the password for that account to a new, strong, unique one. 2. Change the password for any *other* accounts where you might have reused the old password. 3. Enable 2FA/MFA if you haven't already. 4. Check the account for any unauthorized activity (e.g., emails sent, purchases made). 5. Report the compromise to the service provider if necessary.

How often should I change my passwords?

While older advice recommended changing passwords frequently (e.g., every 2-3 months), current best practice emphasizes using very strong, unique passwords (via a password manager) and only changing them if you suspect a compromise. However, some compliance rules may still require periodic changes. The most critical thing is uniqueness and strength.

What is 2FA/MFA and should I use it?

Two-Factor Authentication (2FA) or Multi-Factor Authentication (MFA) adds an extra layer of security beyond just your password (e.g., a code sent to your phone, an authenticator app). Yes, absolutely use it whenever it's offered! It significantly increases your account security.

What about security questions and answers?

Treat your security questions and answers like passwords - they should also be unique for every account. Avoid answers that can be easily found online or guessed. Consider using random strings generated by a password manager as answers if the site allows.

How should I (or shouldn't I) share my password?

Never share your password via insecure methods like text message, instant messenger (Slack, Discord, etc.), social media messages, or unencrypted email. Ideally, don't share passwords at all. If absolutely necessary, use a secure method like a trusted password manager's sharing feature.

Who can I safely give my password to?

No one. Legitimate organizations (banks, reputable websites, your company's IT support) will *never* ask for your password directly. Never give it out, ever.

Is it safe to log into important accounts on public WiFi or shared computers?

Avoid logging into sensitive accounts (like banking, email) using public WiFi networks or on devices you don't own/trust (like a friend's computer or a public library terminal). These environments pose higher security risks. Use a VPN if you must use public WiFi.

Should I use a VPN?

Using a Virtual Private Network (VPN) is generally a good idea, especially when using public WiFi. It encrypts your internet traffic, adding a layer of privacy and security. If you travel often, consider using a trusted VPN service or even setting up your own private VPN server.

Why is keeping my software updated important for security?

Updates often include patches for security vulnerabilities that hackers exploit. Keeping your operating system (Windows, macOS), web browser, router firmware, and other applications up-to-date is critical for protection.

Do I really need AntiVirus software?

Yes. Quality AntiVirus/Anti-Malware software provides essential protection against viruses, ransomware, and other malicious software. Keep it installed and updated. Modern operating systems have built-in protection (like Windows Defender), which is good, but dedicated solutions often offer broader protection.

Should I encrypt my computer's drives?

Encrypting your hard drives (using tools like BitLocker for Windows or FileVault for macOS) is highly recommended. It protects your data if your computer is lost or stolen, as the drive contents will be unreadable without the password or recovery key.

Are online paste tools or screen capture tools a risk?

Be cautious. Some tools might automatically upload clipboard content or screenshots to the cloud. Avoid pasting sensitive information (like passwords) into online tools, and be mindful of what your screen capture software does with images.

Should I lock my devices when I step away?

Absolutely. Always lock your computer (e.g., Windows Key + L, Ctrl+Cmd+Q on Mac) and mobile phone whenever you leave them unattended, even for a short time. This prevents unauthorized physical access.

Pro Developer Security FAQ

Why is secure password management so important from a developer's perspective?

As developers, we have a responsibility to protect user data. Building systems with poor password management practices not only puts users at significant risk but can also lead to devastating data breaches, loss of user trust, legal liability, and reputational damage for your application or company. The internet is inherently risky; don't make it worse.

What's the absolute worst way to store user passwords?

Never, ever store user passwords (or security questions/answers) as plain text in your database or logs. This is extremely negligent and makes users incredibly vulnerable if your system is breached.

What is the correct way to store user passwords securely?

Always hash user passwords using a strong, modern, adaptive hashing algorithm (like Argon2, scrypt, or bcrypt). Crucially, you must use a unique, randomly generated salt for *each user's password* before hashing. Store the hash and the unique salt together for verification.

Which specific password hashing algorithms are recommended (and which should I avoid)?

Prioritize modern, adaptive hashing algorithms designed for password storage. Recommended: Argon2 (often considered the strongest, OWASP #1 recommendation), scrypt, or bcrypt. Avoid at all costs: MD5, SHA1, or any unsalted hashing algorithm, as these are easily crackable with modern hardware.

How should I handle generating initial passwords for new users?

Avoid generating passwords for users and sending them via insecure channels like email. It's better to implement a secure account activation or password reset flow where the user sets their own password directly.

Should my application enforce password complexity rules (length, character types) on the server-side?

Yes, enforcing minimum password complexity and length requirements during signup or password change is a good practice. While client-side checks provide immediate feedback, server-side validation is essential for security. Check current recommendations (like NIST guidelines) which sometimes favor length over strict complexity mandates if entropy is high. However, blocking known breached passwords is also highly effective.

How should I handle failed login attempts?

Implement rate limiting and account lockout mechanisms. Log invalid login attempts (securely, avoiding logging sensitive data) and consider alerting users to suspicious activity on their accounts (like multiple failed logins). After a certain number of incorrect attempts from an IP address or on an account, temporarily lock the account or require additional verification (like CAPTCHA or email confirmation) to mitigate brute-force attacks.

What is Credential Stuffing and how can I mitigate it?

Credential stuffing is an automated attack where bots use lists of stolen usernames and passwords (from other breaches) to try logging into your application. Mitigation includes: implementing Multi-Factor Authentication (MFA), using robust account lockout and rate limiting policies, monitoring for high volumes of failed logins from specific IPs, and potentially using services that check submitted passwords against known breach lists (like Have I Been Pwned's Pwned Passwords API).

How does input validation relate to authentication security?

Proper input validation on login forms, password reset forms, and user profile fields is crucial. It helps prevent injection attacks like SQL Injection (if credentials or user data are improperly handled in database queries) and Cross-Site Scripting (XSS), which could potentially steal session cookies or compromise user interactions. Always validate and sanitize user input on the server-side.

What are the key elements of a secure "forgot password" or password reset process?

Use secure, time-limited, single-use tokens sent via a secure channel (usually email) to the user's registered address. Do not send old passwords or new passwords directly. Invalidate the token after use or expiration. Ensure the reset process requires re-authentication if the user is already logged in. Log reset attempts and notify the user.

How can I securely manage user sessions after they log in?

Use randomly generated, high-entropy session identifiers stored securely (e.g., in HttpOnly, Secure cookies). Implement session timeouts (both inactivity and absolute). Provide a clear logout function that properly invalidates the session on both client and server. Consider regenerating the session ID upon login or privilege level change (session fixation prevention). For APIs, use secure token-based authentication (e.g., OAuth 2.0, JWTs implemented correctly).

Is using HTTPS/TLS really that important?

Yes, absolutely critical. Always use TLS (HTTPS) with a valid, up-to-date certificate for all communication between the user's browser and your server. This encrypts the data in transit, protecting login credentials and other sensitive information. Tools like Let's Encrypt (often used with certbot) provide free certificates.

How can I protect servers from brute-force login or other attacks?

Beyond application-level protections (like rate limiting), consider installing server-level intrusion detection and prevention software (IDPS) or web application firewalls (WAFs). Tools like Fail2ban or commercial solutions (e.g., from Palo Alto Networks, Cloudflare, Alert Logic) can help block malicious IPs automatically.

How important are firewalls for internal services?

Very important. Use firewalls (network firewalls and/or host-based firewalls) to restrict access to internal servers and services. Only allow connections from trusted sources and necessary ports (principle of least privilege).

How should administrators securely access internal systems?

Require administrators to connect via a secure Virtual Private Network (VPN) before accessing internal servers, management consoles, or sensitive data. Avoid exposing administrative interfaces directly to the public internet.

Does using my own domain matter for security and user trust?

Yes. Use your own dedicated domain for all user-facing interactions (website, API endpoints, email). Avoid hosting critical functions on shared or less reputable domains. This helps build user trust and gives you more control over security configurations like DNSSEC and email authentication (SPF, DKIM, DMARC).

How can I ensure the integrity of software updates or packages I distribute?

If you distribute software or updates, sign them using a private key (e.g., with GnuPG/PGP). Publish your public key securely so users can verify the signature, ensuring the package hasn't been tampered with.

How do I manage security risks from third-party libraries and dependencies?

Regularly scan your project's dependencies for known vulnerabilities using tools like OWASP Dependency-Check, npm audit, GitHub Dependabot, Snyk, etc. Keep dependencies updated, but test updates carefully. Remove unused dependencies to reduce the attack surface. Be cautious about the permissions granted to third-party code.

How often should we perform security code reviews or penetration tests?

The frequency depends on your application's risk profile and development cycle. Ideally, security reviews should be part of your regular code review process. Formal penetration testing by external experts is recommended periodically (e.g., annually or after major changes) for critical applications to identify vulnerabilities that automated tools or internal reviews might miss.

Besides notifying users, what are key technical steps after discovering a data breach involving credentials?

1. Contain the breach (isolate affected systems, close vulnerabilities). 2. Investigate the scope (what data was accessed, how?). 3. Force a password reset for all affected users (or potentially all users). 4. Invalidate active sessions/tokens. 5. Enhance monitoring and logging. 6. Review and improve security controls that failed. 7. Preserve evidence for forensic analysis. (Note: Legal/regulatory notification steps are also crucial but outside the purely technical scope).

What if I'm unsure about implementing these security practices?

Security is complex and constantly evolving. If any of this is confusing or you're unsure about the best implementation, ask questions. Consult security documentation, reputable online resources (like OWASP), or seek guidance from experienced senior developers or security professionals. Don't guess when it comes to security.

Also check out the Random Passphrase Generator, Unicode Random Password Generator, and How to Generate a Strong Random Password in Python.

-Sethers