Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Чем проще всего зашифровать? / 25 сообщений из 40, страница 1 из 2
09.08.2017, 14:22
    #39502607
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Есть задача замаскировать некоторые varchar поля в таблицах, не все столбцы целиком, а в отдельных строчках. Условно скрыть данные части справочника.
1. Шифрование нужно одностороннее, без возможности обратной расшифровки, без хранения ключей где бы то ни было.
2. должна быть повторяемость, т.е. если "Иванов И.И." шифруется в "876nf854^%&" то это должно быть всегда, а не каждый раз в новую строку

чем проще всего?

2модератор
создал две одинаковые темы в разных разделах сознательно, решение нужно и для Ora и для MS
...
Рейтинг: 0 / 0
09.08.2017, 14:27
    #39502616
Andrey.L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
SintetikЕсть задача замаскировать некоторые varchar поля в таблицах, не все столбцы целиком, а в отдельных строчках. Условно скрыть данные части справочника.
1. Шифрование нужно одностороннее, без возможности обратной расшифровки, без хранения ключей где бы то ни было.
2. должна быть повторяемость, т.е. если "Иванов И.И." шифруется в "876nf854^%&" то это должно быть всегда, а не каждый раз в новую строку

чем проще всего?

2модератор
создал две одинаковые темы в разных разделах сознательно, решение нужно и для Ora и для MS
Хэширование, но не функцией ORA_HASH.
Надеюсь значения в мс-е и оракле не должны быть одинаковы.
...
Рейтинг: 0 / 0
09.08.2017, 14:30
    #39502618
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Sintetik,
dbms_crypto
...
Рейтинг: 0 / 0
09.08.2017, 14:32
    #39502619
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Andrey.LНадеюсь значения в мс-е и оракле не должны быть одинаковы.
нет не должны, есть ключевые поля если что
...
Рейтинг: 0 / 0
09.08.2017, 14:43
    #39502630
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
envSintetik,
dbms_crypto
Data of type VARCHAR2 must be converted to RAW before you can use DBMS_CRYPTO functions to encrypt it.

а без конвертации как-то можно? и в SQL запросах чтобы использовать
...
Рейтинг: 0 / 0
09.08.2017, 14:49
    #39502635
Andrey.L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
SintetikenvSintetik,
dbms_crypto
Data of type VARCHAR2 must be converted to RAW before you can use DBMS_CRYPTO functions to encrypt it.

а без конвертации как-то можно? и в SQL запросах чтобы использовать
utl_raw
Код: plsql
1.
select dbms_crypto.hash(utl_raw.cast_to_raw(dummy), md5) from dual
...
Рейтинг: 0 / 0
09.08.2017, 15:07
    #39502662
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Andrey.L,
а потом обратно в varchar потому что нужно записать на место оригинала
пойдет, не миллионы строк шифруем
...
Рейтинг: 0 / 0
09.08.2017, 15:09
    #39502665
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Andrey.L,
а ничего что хэш не уникальный ?
...
Рейтинг: 0 / 0
09.08.2017, 15:13
    #39502669
Азагаш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
123ййAndrey.L,
а ничего что хэш не уникальный ?
разве на осмысленной информации повторы случаются?
...
Рейтинг: 0 / 0
09.08.2017, 15:31
    #39502687
Andrey.L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Азагаш123ййAndrey.L,
а ничего что хэш не уникальный ?
разве на осмысленной информации повторы случаются?
Да, случаются. Чем длиннее результат, тем реже. Поэтому я и не рекомендовал использовать функцию ORA_HASH еще в самом начале.
...
Рейтинг: 0 / 0
09.08.2017, 16:23
    #39502734
Fogel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
очередной велосипед:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
with t as
 (select 'Иванов И.И.' as str
    from dual
  union all
  select 'Петров П.П.' as str
    from dual
    union all
   select 'Smith J.' as str
    from dual ),
crypt as (    
select (chr(ascii(substr(str,level,1))/level+2)) sym, str
  from t
connect by level <= length(str)
       and prior str = str
       and prior dbms_random.value is not null)
select listagg(sym,'') within group (order by str) as crypto_str, str from crypt group by str 
...
Рейтинг: 0 / 0
09.08.2017, 17:16
    #39502788
Andrey.L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Fogel,

Думаю, вот это "без возможности обратной расшифровки" начальное условие невыполнимо.
...
Рейтинг: 0 / 0
09.08.2017, 17:26
    #39502796
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Andrey.LFogel,

Думаю, вот это "без возможности обратной расшифровки" начальное условие невыполнимо.

потерять (умышленно) открытый ключ, расшифровть станет если не невозможно, то достаточно трудно

.....
stax
...
Рейтинг: 0 / 0
09.08.2017, 17:28
    #39502798
Fogel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Andrey.LFogel,

Думаю, вот это "без возможности обратной расшифровки" начальное условие невыполнимо.
делов-то, замени в запросе level+2 на dbms_random.value
...
Рейтинг: 0 / 0
09.08.2017, 17:31
    #39502800
Fogel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
FogelAndrey.LFogel,

Думаю, вот это "без возможности обратной расшифровки" начальное условие невыполнимо.
делов-то, замени в запросе level+2 на dbms_random.value
лучше на dbms_random.value+1 - результат будет приятней взгляду
...
Рейтинг: 0 / 0
09.08.2017, 17:37
    #39502809
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
FogelAndrey.LFogel,

Думаю, вот это "без возможности обратной расшифровки" начальное условие невыполнимо.
делов-то, замени в запросе level+2 на dbms_random.value

автор2. должна быть повторяемость,

повторяемость останется?

.....
stax
...
Рейтинг: 0 / 0
09.08.2017, 18:23
    #39502863
Andrey.L
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
StaxAndrey.LFogel,

Думаю, вот это "без возможности обратной расшифровки" начальное условие невыполнимо.

потерять (умышленно) открытый ключ, расшифровть станет если не невозможно, то достаточно трудно

.....
stax
Предлагаешь код Fogel'а обернуть в функцию, заврапить эту функцию, а автора расстрелять?
...
Рейтинг: 0 / 0
09.08.2017, 18:51
    #39502889
Vint
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Sintetik,
DBMS_OBFUSCATION_TOOLKIT.MD5
...
Рейтинг: 0 / 0
09.08.2017, 19:03
    #39502897
Fogel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
StaxFogelпропущено...

делов-то, замени в запросе level+2 на dbms_random.value

автор2. должна быть повторяемость,

повторяемость останется?

.....
stax
нет

ответ уже дали на вопрос
Sintetik чем проще всего?
20711061

а это был "велосипед"
ну можно и повторяемость при "невосстанавливаемости" обеспечить, даже не зная про "ключ" шифрования.
простым дедовским методом прямого соответствия.
только надо определить границы номерных кодов, используемых в словах - см. жёлтым
и по всему массиву заменяемых данных пройти за 1 раз
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
with t as
 (select 'Иванов И.И.' as str, dbms_random.value as pk_rowid
    from dual
  union all
  select 'Петров П.П.' as str, dbms_random.value as pk_rowid
    from dual
  union all
  select 'Smith J.' as str, dbms_random.value as pk_rowid
    from dual
    union all
  select 'Петров П.П.' as str, dbms_random.value as pk_rowid
    from dual),
t_s as
 (select level order_s, substr(str, level, 1) sym, str, pk_rowid 
    from t
  connect by level <= length(str)
         and prior str = str
         and prior pk_rowid = pk_rowid
         and prior dbms_random.value is not null),
C_key as
 (select chr(level) as o_s, chr((level + 10) / (dbms_random.value + 1)) c_s
    from dual
  connect by level <= 
69536)
select listagg(k.c_s, '') within group(order by t_s.str, pk_rowid, t_s.order_s) as crypto_str,
       t_s.str
  from t_s, C_key k
 where t_s.sym = k.o_s
 group by pk_rowid, t_s.str 
...
Рейтинг: 0 / 0
09.08.2017, 19:21
    #39502906
Озо
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Vint,

А он разве не устарел?
...
Рейтинг: 0 / 0
09.08.2017, 22:03
    #39502955
Sergei.Agalakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Берешь начальную строку, и шифруешь её AES256 используя её же как пароль. Можно по вкусу reverse, XOR и т.д. добавить. Короткие строки можно будет взломать подбором, поэтому желательно добить размер начальной строки до минимум 16 символов.
...
Рейтинг: 0 / 0
10.08.2017, 15:13
    #39503443
dba123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Sintetik,

Если всё делать аккуратно в ту же varchar2 колонку,
используя dbms_crypto, то зашифрованная запись может не поместиться после
Код: plsql
1.
update t set c = utl_encode.base64_encode(encoded_c).
...
Рейтинг: 0 / 0
10.08.2017, 16:00
    #39503505
Sintetik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Staxпотерять (умышленно) открытый ключ, расшифровть станет если не невозможно, то достаточно трудно
нет задачи получить сверхстойкий к взлому шифр, нужно чтобы пионэры в лоб нахаляву за полчаса не расшифровали.
...
Рейтинг: 0 / 0
10.08.2017, 16:20
    #39503539
Азагаш
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Sintetikнет задачи получить сверхстойкий к взлому шифр, нужно чтобы пионэры в лоб нахаляву за полчаса не расшифровали.
если снизились требования к первому пункту, может и со вторым не стоит усердствовать. я, конечно не люблю быть рукожопом, но для маркетушек в моей ТС, пытающихся анализировать активность покупателей по номерам дисконтных карт, на самом деле не очень важно, 23 раза конкретный покупатель тарился или 24 из-за того, что хэш совпал. я бы на доступном массиве проверил, так ли уж часты повторы и уже от этого отталкивался.
...
Рейтинг: 0 / 0
10.08.2017, 16:30
    #39503558
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Чем проще всего зашифровать?
Азагаш,
взять конкатенацию двух разных хешив (ф-ций),
то что два разных алгоритма одновременно дадут дубли вероятнось мизерная

.....
stax
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Чем проще всего зашифровать? / 25 сообщений из 40, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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