System.Random
.Next()
*
랜덤으로 문자열을 만들어주는 함수
회원이 비밀번호를 분실했을때 소정의 인증절차를 통과했을 경우 임의로 암호를 바꿔서 메일로 보내줄때 필
요해서 작성해봤습니다.
예전에도 이 게시판에 클래스 형태로 작성해서 올렸었는데 클래스 사용에 익숙치 않은분이 많은것 같아서 함
수로 정의했습니다.
생성되는 문자열 범위는 [a-zA-Z0-9]입니다.
함수의 인수에 얻고자하는 범위를 숫자로 입력해서 호출하면 됩니다.
<%
”// ASP(VBScript)
Public Function RndStr(Lenth)
Dim RanNum:
Dim RanStr: RanStr = Null:
Dim i:
Randomize:
For i=1 to Lenth
Do
RanNum = Round(Rnd * 1000, 0):
if(RanNum>=48 and _
RanNum<=122 and _
(RanNum<=90 or RanNum>=97) and _
(RanNum<=57 or RanNum>=65)) then
Exit Do:
end if
Loop
RanStr = RanStr & Chr(RanNum):
Next
RndStr = RanStr:
End Function
Dim r:
r = RndStr(10):
Response.Write r:
%>
// ASP.NET(C#) ———————————————-
public string RandomString(int strLen)
{
int rnum=0;
int i, j;
string ranStr = null;
System.Random ranNum = new System.Random();
for(i=0; i<=strLen; i++)
{
for(j=48; j<=122; j++)
{
rnum = ranNum.Next(48,123);
if(rnum>=48 && rnum<=122 && (rnum<=57 || rnum>=65) && (rnum<=90 || rnum>=97))
{
break;
}
}
ranStr += Convert.ToChar(rnum);
}
return(ranStr);
}
// use ex.: Label1.Text = RandomString(10);
”// ASP.NET(VisualBasic) ———————————————-
Private Function RndStr(ByRef Length As Integer) As String
Dim RanNum As Integer
Dim RanStr As String
Dim i% = 0
Randomize
For i=1 to Length
Do
RanNum = Fix(Rnd * 1000):
If _
(RanNum>=48) And _
(RanNum<=122) And _
(RanNum<=57 Or RanNum>=65) And _
(RanNum<=90 Or RanNum>=97) _
Then
Exit Do
End If
Loop
RanStr = RanStr & Chr(RanNum):
Next
RndStr = RanStr
End Function
Dim r As String
Dim len% = 10
r = RndStr(len)
Response.Write(r)
참조 사이트: