Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Сгенерировать RANDOM по маске  [new]
Alexei S
Member

Откуда:
Сообщений: 226
Подскажите пожалуйста, каким образом можно сгенерить рандомную строку вида:
53cfe527-c44c-4c42-945b-d53b041b7fb2
18 сен 08, 13:30    [6199966]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
Добрый Э - Эх
Guest
Покури в эту сторону:
select dbms_random.string(,32) from dual connect by level <= 10
18 сен 08, 13:34    [6199989]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
Добрый Э - Эх
Guest
Добрый Э - Эх
Покури в эту сторону:
select dbms_random.string(,32) from dual connect by level <= 10

dbms_random.string(NULL,32)
dbms_random.string('a',32)
dbms_random.string('p',32)
18 сен 08, 13:38    [6200028]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
Alexei S
Member

Откуда:
Сообщений: 226
Да, это понятно. Вопрос в основном в том, как понатыкать "-"
18 сен 08, 13:43    [6200065]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
Elic
Member

Откуда:
Сообщений: 29979
Alexei S
как понатыкать "-"
regexp, substr, ...
18 сен 08, 13:47    [6200097]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
dbms_crypto
Guest
а еще можно посмотреть в сторону
dbms_crypto.hash(...,dbms_crypto.hash_md5)
18 сен 08, 13:57    [6200183]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
Legi
Member

Откуда:
Сообщений: 1005
кстати hash с методом MD5 имеет не такой вид как у ТопикСтартёра
18 сен 08, 14:04    [6200237]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
Legi
Member

Откуда:
Сообщений: 1005
как из вариантов можно примерно так:
select dbms_random.string(,8)||'-'||dbms_random.string(,4)||'-'||  e.t.c.
18 сен 08, 14:07    [6200256]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
vyv3
Member

Откуда: Нск
Сообщений: 305
select regexp_replace (sys_guid(),'(.{8})(.{4})(.{4})(.{4})(.{12})','\1-\2-\3-\4-\5') from dual
18 сен 08, 14:13    [6200312]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
dbms_crypto
Guest
dbms_random.string

имхо у автора все же 16-ричное представление а не рандомная строка.
учитывая размер в первую очередь в голову приходит мд5
18 сен 08, 14:46    [6200528]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
dbms_crypto
Guest
Legi
кстати hash с методом MD5 имеет не такой вид как у ТопикСтартёра

ну минусы понатыкать и будет такой.
18 сен 08, 14:48    [6200550]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
Legi
Member

Откуда:
Сообщений: 1005
dbms_crypto
Legi
кстати hash с методом MD5 имеет не такой вид как у ТопикСтартёра

ну минусы понатыкать и будет такой.


если в слово "счастье" напихать кучу ЛИШНИХ букв, то это уже будет не счастье и что-то не понятное: "спфустйье"
так что забудьте про MD5 и не вводите в заблуждение ТС
с таким же успехом можно утверждать: "это base64 в урезоной с оброшенными последними цифрами" или " RSI с открытым ключём и лишними символами"


хотя я практически могу гарантировать что у ТС строчка является аля уникальным кодом (для ПО допустим) но алгоритм ему не известен :)
может тем самым пытается создать словарик для брута подобных программ :)
18 сен 08, 16:37    [6201357]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
wildwind
Member

Откуда: Москва
Сообщений: 1296
Все не угадали :)

SQL> select sys_guid() from dual;

SYS_GUID()
--------------------------------
572D413919BD5904E040070A07433F3A

1 строка выбрана.

Хранить их лучше в исходном виде, как RAW(32). А "понатыкать -" можно, но только для представления

SQL> select lower(substr(id,1,8) ||'-'|| substr(id,9,4) ||'-'|| substr(id,13,4) ||'-'|| substr(id,17,4) ||'-'|| substr(id,21)) guid_str
  2  from guid_table;

GUID_STR
------------------------------------
572d4139-19da-5904-e040-070a07433f3a

1 строка выбрана.
18 сен 08, 18:36    [6202097]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
dbms_crypto
Guest
Legi
так что забудьте про MD5 и не вводите в заблуждение ТС

задача стояла 1) сгенерировать случайную последовательность 2) с маской из '-'

скорее всего у автора в последовательности являются допустимыми символы 0-9,a-f и пресловутый '-'. в таком случае dbms_random.string идет лесом, вы не находите? кстати как и base64. что вы имели в виду под "rsi с открытым ключем" я не понял (rsa?).

я всего лишь обратил внимание на встречающийся набор символов и длину в 32 символа (без минусов), что очень похоже на md5. поэтому и предложил как вариант dbms_crypto. очевидно, что в результате выполнения не окажется минусов - функция возвращает RAW.

ПС: давайте не будем устраивать споры на пустом месте
18 сен 08, 19:04    [6202202]     Ответить | Цитировать Сообщить модератору
 Re: Сгенерировать RANDOM по маске  [new]
Alexei S
Member

Откуда:
Сообщений: 226
Всем большое спасибо, подошел вариант, предложенный Legi.
19 сен 08, 10:44    [6203949]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить