2

C# アプリケーション コードで Membership.GeneratePassword(10, 0) を使用しました。GeneratePassword メソッド 指定された長さのランダム パスワードを生成します。

2 番目の引数は、生成されたパスワードに含まれる英数字以外の文字 (@、#、!、%、& など) の最小数を指定します。

英数字以外の文字は使いたくないので、0 を指定しました。ただし、Membership.GeneratePassword(10, 0) を実行すると、英数字以外のコンテンツを含むパスワードを取得したため、まだ失敗します

Lg|1-F;?a4

なぜパイプ ( | ) とハイフン ( - ) とセミコロンと疑問符?

4

1 に答える 1

0

以下のこの回避策を使用することになりました。これは、正規表現を使用して英数字以外の文字を取り除き、それらを乱数に置き換えます。

String newPassword = Membership.GeneratePassword(8, 0); //Second arg only guarantees a minimum number (not maximum) number of alphanumeric characters.
Random rng = New Random();
newPassword = Regex.Replace(newPassword, @"[^a-zA-Z0-9]", rng.Next(0, 10).ToString());
于 2021-12-27T14:50:04.117 に答える