مولد رمز عبور تصادفی
مولد رمز عبور تصادفی (به انگلیسی: Random Password Generator) نرم‌افزار یا سخت‌افزاری است که عددی را به عنوان ورودی از یک دستگاه دیگر که عدد تصادفی درست می‌کند، می‌گیرد و به صورت خودکار رمز عبور می‌سازد. این عدد یا به عبارتی این رمز عبورهای تصادفی از طریق روش‌های مختلفی ساخته می‌شوند. این روش می‌تواند تنها با استفاده از یک عدد تصادفی درست کردن، از طریق تابع‌های آمادهٔ زبان‌های برنامه‌نویسی باشد همچنین می‌تواند با استفاده از تابع‌های پیچیده تری پیاده‌سازی شود.
این تصادفی بودن عدد و رمز عبور می‌تواند درجه‌های مختلفی داشته باشد. تعداد زیادی سایت‌ها و برنامه‌های مختلفی وجود دارند که توابع مختلفی برای ساخت زمز عبور تصادفی ارائه می‌دهند و تعدادی از این توابع را در ادامه نشان داده شده‌اند .رمز عبورها در واقع کلیدی برای دسترسی به اطلاعات اشخاص هستند بنابراین اهمیت آنها بسیار واضح است اما اهمیت رمز عبورهای تصادفی را می‌توان زمانی فهمید که مرورگرهای اینترنت از جمله گوگل کروم و فایر فاکس و از این دست مرورگرهای معتبر در خود مولد رمز عبور تصادفی دارند و هنگامی که متوجه می‌شوند که می‌خواهید در سایتی ثبت نام و رمز عبور انتخاب کنید، به شما یک رمز عبور تصادفی پیشنهاد می‌دهند و پس از زدن رمز عبور، آن را در خود ذخیره می‌کنند که در واقع یکی از ابزارهای این مرورگرها مدیریت رمز عبور هامی باشد. این گونه ابزارها برای برنامه‌های مختلف در سیستم عامل اندروید از طریق برنامهٔ اصلی گوگل تعبیه شده‌اند .از آنجایی که کد منبع اینگونه برنامه‌ها را در اختیار نداریم برای اطمینان بیشتر از تابع مولد رمز عبور تصادفی و میزان تصادفی بودن آن می‌توان از منابع آزاد (متن‌باز) که کد منبع آنها در دسترس است، استفاده کرد .برای اینکه میزان تصادفی بودن رمز عبور را زیاد یا کم کرد می‌توان از عناصر مختلفی در رمز عبور استفاده کرد. به عنوان مثال رمز عبور می‌تواند تنها از اعداد تشکیل شده باشد یا حاوی کاراکترهای الفبایی یا کاراکترهای نگارشی مثل " _ ,) , (, [,] , * , # , @ " باشد. در واقع هدف از رمز عبور تصادفی این است که رمزهای عبور به راحتی قابل حدس زدن نباشند از طرفی به قدری هم سخت نباشند که قابل بازیابی نباشند .
مولد رمز عبور تصادفی هم با استفاده از اعداد تصادفی و هم با استفاده از شبه تصادفی که از طریق مولد اعداد شبه تصادفی ساخته می‌شود کار می‌کند اما اعداد شبه تصادفی کاملاً تصادفی نیستند و در واقع یک دنبالهٔ از قبل تعیین شده دارند و قابل پیش‌بینی هستند؛ بنابراین از توابعی مانند تابع ()rand که در زبان‌های برنامه‌نویسی هست می‌توان استفاده کرد اما امنیت لازم را ندارد.
function randomPassword() {
از تابع مذکور و تنها از حروف کوچک و بزرگ الفبای انگلیسی و اعداد استفاده شده‌است.
در کد زیر که نشان داده شده‌است میزان خوبی از عناصری که می‌توانند در رمز عبور بیایند گنجانده شده‌اند و در صورت نیاز کاربر می‌توان از عنصرهای مختلفی استفاده کرد. //Written by Paul Seal. Licensed under MIT. Free for private and commercial uses.
using System; using System.Text.RegularExpressions; using CodeShare.Library.Passwords;
namespace CodeShare.Library.Passwords
در زبان جاوا مانند زبان‌های دیگر یک تابع پیش‌فرض برای تولید عدد تصادفی دارد که گفته شد که در اصل شبه‌تصادفی است. در این زبان برای اینکه عدد تصادفی واقعی داشته باشیم کلاسی به نام SecureRandom به وجود آورده‌اند که در پایین کد مربوط به آن را می‌بینید.
import java.security.SecureRandom; import java.util.Random;
public class GenerateSecurePassword {
از این دست کلاس‌ها مانند SecureRandom که عدد شبه تصادفی ایجاد نمی‌کنند می‌توان به CryptGenRandom نیز اشاره کرد که کاربردهای زیادی از جمله در ساختن کلید در سیستم عامل ویندوز دارد.
در کامپیوترها و در محاسبات دستگاهی وجود دارد که با استفاده از الگوریتمی خاص و پروسه‌های فیزیکی یک عدد تصادفی ایجاد می‌کند که سخت‌افزار مولد عدد تصادفی نامیده می‌شود. تعداد کل کاراکترهایی که در اسکی (استاندارد) وجود دارند ۹۵ کاراکتر است. حال اگر یک جدول ۵×۱۹ داشته باشیم که خانه‌های آن را با کاراکترهای اسکی پر کرده باشیم، با سخت‌افزار مولد عدد تصادفی ابتدا عددی در بازه ۱ تا ۵ و سپس عددی در بازهٔ ۱ تا ۱۹ بدست آورده و کاراکتر خانهٔ متناظر آن در جدول را می‌خوانیم و در رشتهٔ رمز عبور قرار می‌دهیم .نسخهٔ جدول ۶×۶ برای حروف الفبای لاتین و اعداد به صورت زیر می‌باشد.
در سایت‌های مختلف دیده می‌شود زمانی که قصد انتخاب رمز عبور داریم نواری در مقابل آن وجود دارد که نشان می‌دهد که رمز عبوری که انتخاب کرده‌ایم از استحکام کافی برخوردار است یا خیر. استحکام گذرواژه مبحثی است که برای تمامی رمز عبورها مطرح می‌شود و بستگی به احتمال این دارد که در چند آزمایش یک فرد مهاجم می‌تواند این گذرواژه را حدس بزند . در رابطه با استحکام رمز عبورهای تصادفی می‌توان گفت که در صورتی که هیچ‌کدام از کاراکترهایی که در رمز می‌آیند به هم وابسته نباشند، با استفاده از آنتروپی اطلاعات می‌توان فرمول زیر را نوشت (L طول رمز و N تعداد کل کاراکترهایی است که می‌توان در رمز به کار برد) : formula_1
همان‌طور که در این فرمول مشاهده می‌شود، کارایی رمز عبور ایجاد شده به تعداد کاراکتری که می‌تواند استفاده کند (N) محدود می‌شود.