1. ホーム
  2. javascript

[解決済み] javascript でランダムなパスワードを生成する。

2022-08-25 09:24:09

質問

a-zからなる5つの文字と3つの数字からなるランダムな文字列を生成したいです。

JavaScriptでこれを行うにはどうすればよいですか?

以下のようなスクリプトがあるのですが、私の要求を満たしていません。

        var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
        var string_length = 8;
        var randomstring = '';
        for (var i=0; i<string_length; i++) {
            var rnum = Math.floor(Math.random() * chars.length);
            randomstring += chars.substring(rnum,rnum+1);
        }

どのように解決するのですか?

固定文字数を強制するのは が悪い のアイデアです。それはパスワードの質を向上させるものではありません。さらに悪いことに、それは可能なパスワードの数を減らし、ブルートフォースによるハッキングが容易になるようにします。

英数字からなるランダムな単語を生成するには、以下を使用します。

var randomstring = Math.random().toString(36).slice(-8);

どのように動作するのですか?

Math.random()                        // Generate random number, eg: 0.123456
             .toString(36)           // Convert  to base-36 : "0.4fzyo82mvyr"
                          .slice(-8);// Cut off last 8 characters : "yo82mvyr"

のドキュメントは Number.prototype.toString string.prototype.slice メソッドを使用します。