آموزش تولید رشته تصادفی عددی و حروف الفبایی در Asp.Net با سی شارپ و ویژوال بیسیک
آموزش تولید رشته تصادفی عددی و حروف الفبایی در Asp.Net با سی شارپ و ویژوال بیسیک
دراین پست می خواهیم نحوه ایجاد تولید تصادفی رشته الفبایی و عددی را در صفحات Asp.Net با زبان سی شارپ و بیسیک آموزش دهیم.
تولید تصادفی رشته ها در همه وب سایت ها امروزه رایج شده است. از این رشته های تصادفی در قسمت های مختلف از جمله تشخیص ربات و انسان برای فعالیت روی وب همچنین برای تولید یک رمز عبور تصادفی و .... استفاده می شود.
امروز می خواهیم این آموزش را با مثالی در مورد تولید رمز عبور تصادفی پیاده سازی کنیم.
ابتدا یک پروژه از نوع Asp ایجاد میکنیم. سپس نیاز به دو فرم به ترتیب برای سی شارپ و بیسیک نیاز داریم.
پس از ایجاد وب فرم ها حالا میخواهیم کد نویسی لازم را انجام دهیم. برای این منظور کد زیر را برای هردو فرم قرار می دهیم.
<asp:DropDownList ID="ddlLength" runat="server"> <asp:ListItem Text="5" Value="5" /> <asp:ListItem Text="8" Value="8" /> <asp:ListItem Text="10" Value="10" /> </asp:DropDownList> <asp:RadioButtonList ID="rbType" runat="server" RepeatDirection="Horizontal"> <asp:ListItem Text="Alphanumeric" Value="1" Selected="True" /> <asp:ListItem Text="Numeric" Value="2" /> </asp:RadioButtonList> <asp:Button ID="btnGenerate" Text="تولید رمز تصادفی" runat="server" OnClick="GenerateOTP" /> رمز تصادفی شما: <asp:Label ID="lblOTP" runat="server" />
در کد بالا از یک DropDown استفاده کردیم برای مشخص کردن تعداد کاراکتر دلخواه.
همچنین یک RadioBtn برای انتخاب رشته عددی یا الفبایی و عددی.
و یک باتن برای دستور تولید و یک لیبل برای نمایش رمز تصادفی تولید شده.
سپس وارد صفحه کلاینت شده و برای رویداد باتن کد زیر را برای هردو فرم می نویسیم.
سی شارپ :
protected void GenerateOTP(object sender, EventArgs e) { string alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; string small_alphabets = "abcdefghijklmnopqrstuvwxyz"; string numbers = "1234567890"; string characters = numbers; if (rbType.SelectedItem.Value == "1") { characters += alphabets + small_alphabets + numbers; } int length = int.Parse(ddlLength.SelectedItem.Value); string otp = string.Empty; for (int i = 0; i < length; i++) { string character = string.Empty; do { int index = new Random().Next(0, characters.Length); character = characters.ToCharArray()[index].ToString(); } while (otp.IndexOf(character) != -1); otp += character; } lblOTP.Text = otp; }
برای ویژوال بیسیک :
Protected Sub GenerateOTP(sender As Object, e As EventArgs) Dim alphabets As String = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" Dim small_alphabets As String = "abcdefghijklmnopqrstuvwxyz" Dim numbers As String = "1234567890" Dim characters As String = numbers If rbType.SelectedItem.Value = "1" Then characters += Convert.ToString(alphabets & small_alphabets) & numbers End If Dim length As Integer = Integer.Parse(ddlLength.SelectedItem.Value) Dim otp As String = String.Empty For i As Integer = 0 To length - 1 Dim character As String = String.Empty Do Dim index As Integer = New Random().Next(0, characters.Length) character = characters.ToCharArray()(index).ToString() Loop While otp.IndexOf(character) <> -1 otp += character Next lblOTP.Text = otp End Sub
نکات کدهای بالا :
هردو کد کاریکسانی انجام میدهند در ابتدا سه حالت عدد و حروف کوچک و بزرگ را تعریف کردیم. سپس از Radiobtn مقدار مورد نظر را دریافت میکند با شرط if تا نوع رشته مشخص شود و با حلقه for تعداد کارکتر را از DropDown دریافت میکند. پس از انجام الگوریتم بالا نتیجه را داخل لیبل به نمایش میگذارد.
نتیجه حاصل شده :
نظر / سوال