• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Получить некое уникальное значение (желательно чисто цифровое)

  • Автор темы Omh
  • Дата начала
O

Omh

Камрады, моё почтенде!

Встала задача получить некое уникальное значение (будет использоваться как название для папки).
@Unique не катит, т.к. там участвует часть имени пользователя, а соответсвенно могут вылезти кириллица, всякие умляуты и т.д.
Т.е. очень желательно получить уникальное цифровое значение.

Какие значения были до этого, я не знаю, т.е. принцип "предидущее значение + 1" не годиться.

В течении секунды может быть сгенерировано n уникальных значений, т.е. текущее время тоже пролетает.

В идеале, цикл выполняющийся в пределах секунды
Код:
For i = 1 To 100
Print UniqueValue()
Next
должен выпечатаь 100 значений, но, по идее, сгодиться и если число сгенерированных значений будет >80 думаю мне этого хватит.

Пока что смотрю в сторону
Код:
Randomize
UniqueValue = Cstr(Rnd()) + Cstr(Getthreadinfo(6)) ' LSI_THREAD_TICKS
Но такая конструкция выполненная в цикле менее секунды 100 выдаёт только 11 уникальных значений.
Куда бы добавить соли?
Спасибо!

Можно, конечно ввести глобальный счётчик, но пока не хотелось бы.
Ани айдиас аппришиэйтед!

Добавлено: Ща попробовал с глобальным счётчиком, вообще работает.
Т.е. объявил ненавистную мной глобальную переменную и использую её как часть уникального значения.
Т.е. в пределах одного запуска цикла всё получается, как надо.

Добавлено: Уточню, что мне вообще и надо в пределах одного запуска.
Вообщем, похоже, проблема решена с помощью приватной глобальной переменной.
 
M

morpheus

почему бы в Уникью просто не заменять кирилицу ?
 
O

Omh

Morpheus
В России - кириллица
В Латвии - латышица
В Замбии - замбица
Не хочу заморачиваться.

Но вообще, если потеоретизировать насчёт сферического коня в вакууме, то возможно ли не используя глобальную переменную всё время генерировать уникальные значения?
Что-то мне подсказывает, что это не совсем тривиальная задача.
 
M

morpheus

нууууууууу... может просто плодить документы и брать их нотеИд

Добавлено: и возможно j2ls + ( JAVA-рандом ) будет быстрее?
 
O

Omh

и возможно j2ls + ( JAVA-рандом ) будет быстрее?
Ну, чем просто прибавлять единичку к глоб. переменной - вряд ли.
Я просто не понимаю, почему это я думал, что мне надо уникльное значение вне времени и пространства.
На самом деле, мне надо было уникальное значение в пределах запуска, что решается, как 2 пальца об асфальт.
Вообщем, протормозил я :)

Добавлено:
Типа создавать временные документы в пямяти и брать их UNID?
Можно, как вариант.
Но, мне на самом деле, такой способ не очень нравится.
Как то мне не по душе деланье пустышек, которые потом и удаляются.


Кстати, таким способом у меня сделано получаение серверного времени:
Код:
Dim newDoc as NotesDocument
Set newDoc = db.CreateDocument
ServerTime = NewDoc.Created
Под шумок спрошу, ни у кого нет лучше способа без пустышки и без Evaluate(Formula)?
 

Medevic

Что это ? :)
Green Team
10.12.2004
3 334
1
BIT
4
Типа создавать временные документы в пямяти и брать их UNID?
Можно, как вариант.
Но, мне на самом деле, такой способ не очень нравится.
Как то мне не по душе деланье пустышек, которые потом и удаляются.
Создаешь папку, смотришь её UNID и меняешь имя на этот UNID.
 
K

Kee_Keekkenen

Типа создавать временные документы в пямяти и брать их UNID?
Можно, как вариант.
Но, мне на самом деле, такой способ не очень нравится.
Как то мне не по душе деланье пустышек, которые потом и удаляются.

необязательно документы создавать, можно @password использовать
 
X

Xalet

Генерить любой уникальный текст, хоть и тот же @Unique, и переделать в какой MD5 хеш. Да и nvy хорошенький линк подкинул.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!