powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Маскирование уникальных строк
14 сообщений из 14, страница 1 из 1
Маскирование уникальных строк
    #39288892
SantaSem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день
Кто знает максимально лаконичный и шустрый способ изменить уникальное строковое поле в таблице (до неузнаваемости :) т.е. просто приклеить PK вначале и обрезать до длины поля не пойдет - нужно испортит лексическую узнаваемость), не нарушая эту самую уникальность?
Интересует именно возможность это сделать в одном скрипте стандартными средствами без нагромождения свои функций по маскированию, с заменами символов, побитовых сдвигов и т.д.

Спасибо
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39288901
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plsql
1.
translate
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39288916
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SantaSem,

например, приклеить pk к рандомной строке
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39288937
SantaSem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
orawishSantaSem,

например, приклеить pk к рандомной строкенет там РК, да и обрезание по длине поля нужно же будет делать... в принипе select translate('12345','12345','54321') from dual подходит, если в него впилить случайный алгоритм маскирования символов, чтобы маска менялась и не была постоянной типа меняем всегда 'а' на 'б'... спасибо Elic
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39288963
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SantaSemобрезание по длине поля нужно же будет делать...
??
Код: plsql
1.
2.
3.
-- псевдослучайные строки псевдослучайной длины в диапазоне от 3 до 6 символов
select dbms_random.string(chr(dbms_random.value(32,127)), dbms_random.value(3,6))
from dual connect by level < 10;


конкатенировать сюда последовательность - и велкам на баррикады...
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39288969
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SantaSemorawishSantaSem,

например, приклеить pk к рандомной строкенет там РК, да и обрезание по длине поля нужно же будет делать... в принипе select translate('12345','12345','54321') from dual подходит, если в него впилить случайный алгоритм маскирования символов, чтобы маска менялась и не была постоянной типа меняем всегда 'а' на 'б'... спасибо ElicТогда ты легко можешь порушить уникальность
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39288979
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровТогда ты легко можешь порушить уникальностьНеповторяемость цифр подразумевается.
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39288985
Вячеслав Любомудров
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я имел ввиду, что если каждая строка имеет свою маску (соответствие из->в), то можно нарваться
1 строка 123, translate('123', '123', '321') = 321
2 строка 132, translate('132', '123', '312') = 321
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39289072
SantaSem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousSantaSemобрезание по длине поля нужно же будет делать...
??
Код: plsql
1.
2.
3.
-- псевдослучайные строки псевдослучайной длины в диапазоне от 3 до 6 символов
select dbms_random.string(chr(dbms_random.value(32,127)), dbms_random.value(3,6))
from dual connect by level < 10;


конкатенировать сюда последовательность - и велкам на баррикады...dbms_random.string - очень долго работает, рандом было самым первым о чем подумалось..
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39289093
SantaSem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вячеслав ЛюбомудровЯ имел ввиду, что если каждая строка имеет свою маску (соответствие из->в), то можно нарваться
1 строка 123, translate('123', '123', '321' ) = 321
2 строка 132, translate('132', '123', '312' ) = 321 я имел ввидду, что "маска" будет генерироваться непосредственно перед искажением данных, но каждый раз разная, а не прошитая в коде явно...
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39289500
Migelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SantaSem,

а Dbms_Crypto.Hash не подойдет?
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39290406
Сергей Арсеньев
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SantaSemнужно испортит лексическую узнаваемость
Ну если просто неузнаваемо, то XOR. :)
Если посложнее - то на каждое вновь встретившееся слово (строку) генерить новую случайную (с условием, что такая не встречалась среди нагенеренных).
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39290413
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SantaSem,

рассмотрите ORA_HASH
...
Рейтинг: 0 / 0
Маскирование уникальных строк
    #39293217
SantaSem
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MigelleSantaSem,
а Dbms_Crypto.Hash не подойдет?долго будет работать и ORA_HASH тоже... на больших объемах генерация чего либо для каждой отдельной строки умирает.. так что никакой генерации, translate для моих целей подошел отлично, случайно только генерация пары тройки случайных символов замены в общем алфавите в самом начале (типа ключ, который каждый раз будет разным), а остальное стандартный константный набор для замены, затем изменение строк и удаление ddl которое осуществляло маскирование полностью исключают быструю обратную расшифровку..
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Маскирование уникальных строк
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]