Please wait...

最新のお知らせ・ニュース


ランダムな文字列
<公開日:2011年09月27日>

vb.netでaからzまでを用いたランダムな文字列の作り方をご紹介します。
パスワードなどに利用できます。

このサンプルでは4文字のランダム文字列を作成しています。
ランダムクラスで26までの乱数を発生させ
aからzの文字列より乱数に応じて一文字抜き出す作業を繰り返しています。

Dim password As String = “abcdefghijklmnopqrstuvwxyz”

Function getPassword() As String

Dim r As New System.Random()
Dim pass As String = “”

For i As Integer = 0 To 3

Dim num As Integer = r.Next(26)
pass = pass & password.Substring(num, 1)

Next

Return pass

End Function

例えばボタンをクリックしてgetPasswordクラスを呼び出すのであれば
このコードでも十分なのですが

getPassword() & getPassword() & getPassword()

のように短時間に連続して呼び出す場合は注意が必要です。
全く同じものが帰ってきてしまいます。

msdnの解説を見ると

乱数の生成には、初期値としてシード値を使用します。
同じシードを繰り返し使用すると、生成される乱数系列も同じになります。

とあります。
シード値を設定していないと時刻がシード値に用いられ
連続して生成する場合同じ時刻が用いられてしまうので同じ値になってしまうようです。

1 つの乱数を生成するために繰り返し新しい Random を作成するのではなく
1 つの Random を作成して何回も使用し、多くの乱数を生成するようにします。

とのことなので赤文字のインスタンスの宣言(new as system.random)を
お外に出してみると無事に連続してパスワード作成できました。











どんな小さな事でもまずはお気軽にご相談下さい。お見積もりはいつでも無料で承ります。

この度は数あるホームページ制作会社から、当社のサービスに関心を示して頂き、本当にありがとうございます。 きっと貴社は、信頼できる良いホームページ作成会社をお探しの事と思います。当社は、お客様に心から喜んでいただけるよう「誠実さ」「優しさ」を心がけて仕事に励んでいます。 お客さまの思い描くホームページが完成するよう、精一杯お手伝いさせて頂きますので、ホームページ作成は是非当社にお任せ下さい。

お問い合わせはこちら

富山県・地域密着だからできる安心・丁寧なホームページ作りをお約束します。
Copyright (C) 2016 Awake Computer All Rights Reserved.