ژوئن
14
2015
14
2015
انواع روشهای تولید رشتههای تصادفی در #C
نوشته شده توسط admin
دیدگاه(1)
حتما برای شما هم پیش آمدهاست که در پروژهای نیاز داشتید تا رشتهای تصادفی را تولید کنید. کد تصادفی میتواند کاربردهایی چون تولید رمز، تولید شناسه، تولید url ، تولید کد فعال سازی و مواردی از این قبیل را داشته باشد.
احتمالا برای ساخت کد یا رشته تصادفی، اولین چیزی که به ذهن شما میرسد، استفاده از کلاس random میباشد. اما روشهای خلاقانه و جالب زیادی وجود دارند که برای این کار استفاده میشوند. در اینجا میخواهیم تعدادی از آنها را با هم بررسی کنیم.
روشهای تولید اعداد یا رشته تصادفی:
۱- معمولترین روش تولید یک کد شش رقمی با استفاده از کلاس random
public void TestRandomClass() { var code = new Random().Next(100000, 999999); Assert.IsTrue(code.ToString().Length == 6); } |
۲- تولید با استفاده کلاس Random و Enumerable
public void TestRandomWithEnumerable() { var chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ; var random = new Random(); var result = new string ( Enumerable.Repeat(chars, 6) .Select(s => s[random.Next(s.Length)]) .ToArray()); Assert.IsTrue(result.Length == 6); } |
البته بدیهی هست که در قسمت chars میتوانید هر نوع کاراکتری را قرار دهید و کد نهایی بر آن مبنا تولید میشود. مثلا میتوانید فقط اعداد را مشخص کنید و در این حالت رشتهی خروجی فقط شامل رقم خواهد بود. اگر خواستید رشتهی طولانیتری را تولید کنید، کافی ست طول مورد نیاز را با عدد ۶ در کد بالا جایگزین کنید.
مثلا برای تولید رمز عبور از لیست زیر میتونید استفاده کنید:
var chars = “ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuwxyz~!@#$%^&*“;
۳- تولید کد با استفاده از guid
Guid.NewGuid().ToString().Replace( "-" , string .Empty).Substring(0, 6); |
یا
Guid.NewGuid().ToString( "n" ).Substring(0, 6); |
کد (“ToString(“n کاراکترهای غیرعددی را از رشتهی مورد نظر حذف میکند.
۴ – تولید با استفاده از کلاس RNGCryptoServiceProvider
بعضیها روشهای ویژه را میپسندند. البته استفاده از این کلاس مزایا و معایب خودش را دارد. از نظر سرعت نسبت به کلاس random پایینتر هست، چون محاسبات بیشتری دارد.
public static string GetUniqueKey( int maxSize) { char [] chars = new char [62]; chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890" .ToCharArray(); byte [] data = new byte [1]; using (RNGCryptoServiceProvider crypto = new RNGCryptoServiceProvider()) { crypto.GetNonZeroBytes(data); data = new byte [maxSize]; crypto.GetNonZeroBytes(data); } StringBuilder result = new StringBuilder(maxSize); foreach ( byte b in data) { result.Append(chars[b % (chars.Length)]); } return result.ToString(); } } |
۵ – استفاده از متد Path.GetRandomFileName
کاربرد اصلی این متد در واقع تولید نام فایلی تصادفی است؛ ولی از آن برای تولید رشته هم استفاده میکنند.
متد Path.GetRandomFileName در پشت صحنه از همان کلاس RNGCryptoServiceProvider برای تولید نام فایل استفاده میکند.
public string Get8CharacterRandomString() { string path = Path.GetRandomFileName(); path = path.Replace( "." , "" ); // Remove period. return path.Substring(0, 6); // Return 6 character string } |
۶- تولید کد با استفاده از کلاس random و linq
var chars = "abcdefghijklmnopqrstuvwxyz123456789" .ToArray(); string pw = Enumerable.Range(0, passwordLength) .Aggregate( new StringBuilder(), (sb, n) => sb.Append((chars[random.Next(chars.Length)])), sb => sb.ToString()); |
نتیجه
مطمئنا روشهای زیادی برای تولید رشته تصادفی وجود دارند و البته همه شباهتهایی نیز دارند و در لایههای یایینتر، دارای اصولی مشترک هستند.موارد بالا فقط روشهای متفاوت تولید کد نهایی را نشان میدهند که شما بسته به نیاز خود میتوانید از آنها استفاده کنید.
شما چه روشهایی را برای این کار میشناسید؟
برچسب ها: .net, C#, Download, programming, Proje, projeh, random, random string, Visual studio, تولید اعداد تصادفی, تولید اعداد رندوم, تولید رشته رندوم, حامی پروژه, رشته تصادفی, سی شارپ
مطالب مرتبط
1 دیدگاه + فرستادن دیدگاه
فرستادن دیدگاه
راهنمای دانلود
تبلیغات
آرشیو موضوعی
- کامپیوتر (142)
- آموزشی (30)
- برنامه نویسی متلب (3)
- برنامه نویسی وب (4)
- برنامه نویسی ویندوز (19)
- #C – سی شارپ (18)
- API – اِِی پی آی (6)
- ++C/C سی/سی پلاس پلاس (1)
- #C – سی شارپ (18)
- پایگاه داده (9)
- تحقیقاتی (26)
- سخت افزار (1)
- شبکه های کامپیوتری (28)
- شبیه سازی (7)
- شیوه ارائه مطالب (6)
- طراحی الگوریتم (1)
- طراحی صفحات وب (3)
- CSS – سی اس اس (3)
- HTML – اچ تی ام ال (3)
- کارآموزی (4)
- کامپایلر (2)
- مهندسی نرم افزار (54)
- UML – یو ام ال (51)
- نمونه سوال (3)
- هوش مصنوعی (1)
بیشترین بازدید
- مدلسازی معنایی داده ها - تعداد بازدید (83,572)
- تجزیه و تحلیل سیستم کتابخانه توسط UML - تعداد بازدید (32,900)
- تجزیه و تحلیل سیستم رزرو و فروش بلیط در آژانس مسافرتی با UML - تعداد بازدید (30,324)
- نمودار ER بانک و روابط بین آنها و نرمال سازی جداول در سطح BCNF - تعداد بازدید (27,259)
- نمودار ER کتابخانه و روابط بین آنها و نرمال سازی جداول در سطحBCNF - تعداد بازدید (26,004)
- نمودار جریان داده (Data flow Diagram(DFD آژانس تاکسی تلفنی - تعداد بازدید (25,953)
- تجزیه و تحلیل فروشگاه با UML در نرم افزار رشنال رُز - تعداد بازدید (24,185)
- تجزیه و تحلیل سیستم فروشگاه آنلاین با UML در نرم افزار رشنال رز(Rational Rose) - تعداد بازدید (23,401)
- Checkout - تعداد بازدید (23,262)
- تجزیه و تحلیل سازمان تامین اجتماعی با UML در نرم افزار رشنال رُز - تعداد بازدید (22,050)
مطالب تصادفی
- ثبت سفارش در رستوران با سی شارپ- رایگان
- تحلیل و طراحی شبکه اداره پست و شبیه سازی با Opnet
- پروژه UML سیستم دانشگاه
- تجزیه و تحلیل سيستم آژانس تاکسی تلفنی با UML در نرم افزار رشنال رُز
- رایانش ابری و کاربردهای آن در تلفن همراه
- مدلسازی معنایی داده ها
- گزارش کارآموزی در سازمان جهاد کشاورزی – رشته کامپیوتر
- آموزش ایجاد فهرست در Word
- شبیه سازی CMD ویندوز با استفاده از توابع API در سی شارپ
- پوشش در شبكه هاي حسگر بي سيم
تازه ترین ها
- تجزیه و تحلیل آموزشگاه موسیقی با استفاده از UML
- تجزیه و تحلیل هتل با UML در نرم افزار رشنال رُز
- تجزیه و تحلیل سیستم عابر بانک با استفاده از UML در نرم افزار رشنال رُز
- تجزیه و تحلیل صرف غذا در رستوران با UML در نرم افزار Rational Rose
- تجریه و تحلیل سیستم امنیتی ورود و خروج یک سازمان با UML در نرم افزار Pacestar UML Diagrammer
- تجزیه و تحلیل انبار کارخانه با UML
- تجزیه و تحلیل تاکسی تلفنی با UML
- تجزیه و تحلیل سیستم رزرو و فروش بلیط در آژانس مسافرتی با UML
- تجزیه و تحلیل شرکت کاریابی با استفاده از UML
- تجزیه و تحلیل سیستم کتابخانه توسط UML
تقویم شمسی
ش | ی | د | س | چ | پ | ج |
---|---|---|---|---|---|---|
« آذر | ||||||
1 | 2 | 3 | 4 | |||
۵ | ۶ | ۷ | ۸ | ۹ | ۱۰ | ۱۱ |
۱۲ | ۱۳ | ۱۴ | ۱۵ | ۱۶ | ۱۷ | ۱۸ |
۱۹ | ۲۰ | ۲۱ | ۲۲ | ۲۳ | ۲۴ | ۲۵ |
۲۶ | ۲۷ | ۲۸ | ۲۹ | ۳۰ |
عاااااااااااالی
tesla