8.х генератор паролей

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем altenas, 8 дек 2009.

  1. TopicStarter Overlay
    altenas
    Offline

    altenas Опытный в 1С

    Регистрация:
    1 окт 2008
    Сообщения:
    93
    Симпатии:
    0
    Баллы:
    26
    условия к паролю-8 знаков, все английские, маленькие,
    код:
    пароль="";
    ГСЧ=Новый ГенераторСлучайныхЧисел(255);
    Для сч=1 по 8 Цикл
    слч=ГСЧ.СлучайноеЧисло(97,122);
    Пароль=пароль+Символ(слч);
    КонецЦикла;

    все время отдает один и тот же пароль. Что не так? :unsure:
  2. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    обратите внимание на параметр в конструкторе. Из СП:
  3. TopicStarter Overlay
    altenas
    Offline

    altenas Опытный в 1С

    Регистрация:
    1 окт 2008
    Сообщения:
    93
    Симпатии:
    0
    Баллы:
    26
    ага, значит ГСЧ=Новый ГенераторСлучайныхЧисел();
  4. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    пробуйте, отпишитесь потом для сообщества :)
  5. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Ех, опередили. А вот вариант для пущей секюритности дополняет случайными цифирями:
    Код:
    пароль="";
    ГСЧ=Новый ГенераторСлучайныхЧисел();
    Для сч=1 по 8 Цикл
    слч=ГСЧ.СлучайноеЧисло(97,122);
    Если ((слч % 2) = 0 ) Тогда
    слч=ГСЧ.СлучайноеЧисло(0,9);
    Пароль=пароль+слч;
    Продолжить;
    КонецЕсли;
    Пароль=пароль+Символ(слч);
    КонецЦикла;
    Сообщить("Пароль: "+Пароль);
    
    
  6. TopicStarter Overlay
    altenas
    Offline

    altenas Опытный в 1С

    Регистрация:
    1 окт 2008
    Сообщения:
    93
    Симпатии:
    0
    Баллы:
    26
    если руками тыкать в кнопку "слепить пароль", то разные получаются,
    а вот потоковое создание полутора тысяч паролей (что и было цель) неудачно, получаются группки из 8 одинаковых паролей подряд. Нужно что-нибудь, что бы подтормаживало...
  7. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Да, действительно. Ну, как правило генераторы случайных чисел построены на системном таймере видимо обращается к функции чаще, чем в раз секунду вот и результат. К сожалению нет у 1Ски возможности просто затормозить работу обработки на N секунд. Можно просто добавить цикл, который будет жрать процессорное время, чтобы подождать, пока сменится время на часах.

    Код:
    для счет = 1 по 200 цикл
    для счет2 = 1 по 2000 цикл // просто так...
    Нифига = ТекущаяДата();
    КонецЦикла;
    
    пароль="";
    ГСЧ=Новый ГенераторСлучайныхЧисел();
    Для сч=1 по 8 Цикл
    слч=ГСЧ.СлучайноеЧисло(97,122);
    Если ((слч % 3) = 0 ) Тогда
    слч=ГСЧ.СлучайноеЧисло(0,9);
    Пароль=пароль+слч;
    Продолжить;
    КонецЕсли;
    Пароль=пароль+Символ(слч);
    КонецЦикла;
    Сообщить("Пароль: "+Пароль);
    КонецЦикла;
    
    
  8. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    к слову, по поводу паузы (если нужно остановить на конкретное кол-во секунд):
    Код:
    ВремяСтарта = ТекущаяДата();
    Длительность = 30;
    Пока (ТекущаяДата() - ВремяСтарта) < Длительность Цикл
    //Ожидаем
    КонецЦикла;
    
    

Поделиться этой страницей