powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Обезличивание
5 сообщений из 5, страница 1 из 1
Обезличивание
    #39643302
amirmee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
Поставили задачу которая называется "Обезличивание персональных данных", заключается в том чтоб зашифровать столбцы в таблицах содержащие ФИО и прочие персональные данные. Выслали инструкцию для СУБД Oracle, PostgreSQL и MSSQL.
Примерно такого плана:
База данных Oracle 10 и выше

1. Выдаем разрешение на пользование пакета sys.dbms_crypto
grant execute on sys.dbms_crypto to <your_schema>;
К примеру ваша схема называется my_schema:
grant execute on sys.dbms_crypto to my_schema;

2. Создаем следующую функцию:
create or replace function sha1(
p_string varchar2
) return varchar2 is
v_result varchar2(250);
v_secretKey varchar2(20);
begin
v_secretKey := '01B307ACBA';
v_result := lower(p_string) || v_secretKey;
return rawToHex(dbms_crypto.hash(utl_raw.cast_to_raw(v_result), dbms_crypto.hash_sh1));
end;

3. Создаем синоним к функции и выдаем разрешение на пользование всем:
create public synonym sha1 for sys.sha1;
grant execute on sha1 to public;

4. Далее можно использовать данную функцию таким образом:
update my_schema.some_table
set column1 = sha1(column1),
column2 = sha1(column2);

5. Используйте данную функцию ко всем столбцам, требующие обезличивание.
-------------------------------------------------------------------------------------
Соответственно для db2 она не подходит. Нашел на форуме в вот такую статью статья , у ребят работает у меня нет.
Может кто сталкивался с такой задачей? Посоветуйте куда копать
...
Рейтинг: 0 / 0
Обезличивание
    #39643456
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Обезличивание
    #39643805
Victor Metelitsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для sha1 код выглядит как-то так:

Код: java
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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
import java.io.*;
import java.security.*;
import org.apache.commons.codec.binary.Base64; 

import javax.crypto.spec.SecretKeySpec;
import javax.crypto.Mac;
import org.apache.commons.codec.binary.Hex;

import java.lang.*;         // for String class
import COM.ibm.db2.app.UDF; // UDF classes

public class Xxx  extends UDF {
  public // static String 
    void hmacSha1(String value, String key, String output) 
  {
    try {
      // Get an hmac_sha1 key from the raw key bytes
      byte[] keyBytes = key.getBytes();           
      SecretKeySpec signingKey = new SecretKeySpec(keyBytes, "HmacSHA1");

      // Get an hmac_sha1 Mac instance and initialize with the signing key
      Mac mac = Mac.getInstance("HmacSHA1");
      mac.init(signingKey);

      // Compute the hmac on input data bytes
      byte[] rawHmac = mac.doFinal(value.getBytes());

      // Convert raw bytes to Hex
      byte[] hexBytes = new Hex().encode(rawHmac);

      //  Covert array of Hex bytes to a String
      output = new String(hexBytes, "UTF-8");
      set(3, output);
      // return new String(hexBytes, "UTF-8");
    } catch (Exception e) {
      throw new RuntimeException(e);
    }
  }
}



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
CALL sqlj.refresh_classes() @
DROP FUNCTION migr.sha1(varchar(), varchar()) @
CREATE or replace FUNCTION migr.sha1(varchar(100), varchar(100))
  RETURNS varchar(500)
  LANGUAGE JAVA
  EXTERNAL NAME 'Xxx!hmacSha1'
  DETERMINISTIC
  FENCED
  NO FINAL CALL
  RETURNS NULL ON NULL INPUT
  NO SQL
  PARAMETER STYLE DB2GENERAL
  NO EXTERNAL ACTION
  DISALLOW PARALLEL
  NO DBINFO
@
VALUES migr.sha1('pwd','key')
@
...
Рейтинг: 0 / 0
Обезличивание
    #39644100
amirmee
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем, буду пробовать.
...
Рейтинг: 0 / 0
Обезличивание
    #39644327
Mark Barinstein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
amirmeeСоответственно для db2 она не подходит. Нашел на форуме в вот такую статью статья , у ребят работает у меня нет.
Ну и когда вы пишете, что "у меня не работает", надо бы описание, что именно вы делаете и какие ошибки получаете.
Это работает?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select 
  decrypt_char(str_enc, 'правильный пароль') str
, int(decrypt_char(i_enc, 'правильный пароль2')) i
, str_enc
, i_enc
from (
select 
  encrypt(str, 'правильный пароль') str_enc
, encrypt(i, 'правильный пароль2') i_enc
from table (values 
  ('привет', 1234)
, ('как дела?', 5678)
) t(str, i)
)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Обезличивание
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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