| Генератор псевдослучайных паролей на VB |
|
Для создания простейшего генератора паролей будем использовать: 1. Генератор псевдослучайных чисел; 2. Функцию Chr. И так, рассмотрим алгоритм: 1. Инициализируем генератор случайных чисел:Randomize 2. Используем цикл For для генерации каждого символа. Число символов в пароле - от 8 до 12: For i = 1 To (Rnd * 4) + 8 3. Генерируем псевдослучайное число - ASCII код символа, преобразовываем его в символ функцией Chr и дописываем к паролю: 10 x = (Rnd * (120 - 48)) + 48 If (x > 57) And (x < 65) Then GoTo 10 If (x > 90) And (x < 97) Then GoTo 10 Pass = Pass & Chr(x) 4. Ну, и заканчиваем цикл: Next В результате, дописав все объявления переменных и т.п., получаем такой код для генерации 8-12 значного пароля: Public Function GeneratePassword() As String Dim Pass As String, i As Byte, x As Byte Randomize For i = 1 To (Rnd * 4) + 8 10 x = (Rnd * (120 - 48)) + 48 'Если это не алфавитно-цифровой символ - пробуем еще раз If (x > 57) And (x < 65) Then GoTo 10 If (x > 90) And (x < 97) Then GoTo 10 Pass = Pass & Chr(x) Next GeneratePassword = Pass End Function Теперь поговорим, как можно сделать генерацию с использованием коллекции символов. Для этого объявляем массив arr и присваем каждому его элементу один символ. Удалим строку 10 и две следующии, сделаем необходимые извенения: Pass = Pass & arr(Rnd * UBound(arr)) Функция UBound возвращает номер последнего элемента массива. Теперь, в качестве символа, случайно выбирается один из элементов массива. Public Function GeneratePassword() As String Dim Pass As String, arr() As String, i As Byte arr = Split("0,1,2,3,4,5,6,7,8,9,a,b,c,d", ",") Randomize For i = 1 To (Rnd * 4) + 8 Pass = Pass & arr(Rnd * UBound(arr)) Next GeneratePassword = Pass End Function Эта статья научила Вас делать программы, генерирующие сложные пароли. Данный алгоритм может применяться во многих приложениях, где пользователю необходимо создать свой пароль. Жду Ваших комментариев. Копирование, цитирование, хранение, перепечатка и/или публикация данной статьи разрешены только при обязательном указании прямой ссылки на сайт http://www.vbcoding.org.ua , E-Mail автора и данного предупреждения. Статья может быть исправлена и/или дополнена автором без уведомления читателей. Автор: Влад Таранов, vbpro@ukr.net. |
|
| Последнее обновление ( 12.10.2008 г. ) |
| След. » |
|---|

