IRI предоставя комплект за разработка на софтуер (SDK), за да помогне на потребителите на FieldShield да прилагат алгоритми за криптиране на ниво колона, декриптиране, хеширане и редактиране в проекти на Java и .NET за повече изисквания за маскиране на данни на място или динамично. Тази статия обхваща библиотеката и поддържаните от нея функции за защита на данни на ниво поле/колона.
Кодът за показаните примери е на C#, въпреки че извикванията на функциите ще бъдат еднакви във всички .NET езици. Java използва същите методи, но някои изискват използването на допълнителен параметър; тези случаи се споменават, където е необходимо.
В SDK има два типа класове:класове за криптиране и класове за преобразуване. Класовете за криптиране и декриптиране са:
- AES256
- ASCII
- Буквено-цифрово
Класовете за преобразуване са:
- Шестнадесетичен
- Base64
- Хеш Sha256
- Замяна на знаци.
Класове на криптиране и декриптиране
<тип на клас> obj=нов <тип на клас>();
int iResult =obj.begin();
obj.setPass(“ТЕСТ”);
изход на низ =obj.doTransform („TestString“);
obj.end();
- За да използвате клас за криптиране FieldShield, създайте обект на клас за криптиране с желания тип криптиране. Опциите са:
- enc_aes256
- enc_fp_ascii
- enc_fp_alphanum
(където fp се отнася до криптиране, запазващо формат)
- Настройте обекта с помощта на метода begin().
- Задайте парола за класа за криптиране с помощта на метода setPass().
- Извикайте метода doTransform() с параметър на низ (низът, който трябва да бъде криптиран). Връщаната стойност е новата криптирана стойност.
- След като приключите, изтрийте обекта на клас за криптиране с метода end().
За да използвате тези функции в Java, имате нужда от допълнителен параметър за всички извиквания на функции. Параметърът е указател към обекта, който идва от извикване на getptr().
Примерно извикване на begin() в Java:obj.begin(obj.getptr());
За да използвате стойността за декриптиране на избрания клас за криптиране, заменете „enc“ с „dec“. Останалите извиквания на метод ще бъдат същите.
Пример enc_aes256 става dec_aes256.
Класове на преобразуване
Hex / Base64 / Hash Sha256
кодиран низ =obj.
Замяна на знаци
int[] position ={0,4};
replace_char obj =new replace_char();
кодиран низ =obj.maskString(inputString, ‘#’, position);
- За да използвате клас за преобразуване FieldShield, създайте обект на клас за преобразуване с желания тип на преобразуване. Опциите са:
- шестнадесетичен
- base64
- hash_sha256
- замести_знак
- За да кодирате/декодирате стойност, извикайте избрания метод за кодиране/декодиране на класове. Този метод се нуждае от два параметъра; низът за кодиране/декодиране и дължината на низа за кодиране. Методът връща кодирания/декодиран низ.
- hex_encode/hex_decode
- base64_encode/base64_decode
- sha256_hash
- maskString
- Методът sha256_hash е статичен в .NET и се извиква от статичен обект hash_sha256. В Java се извиква от екземпляр на обект hash_sha256.
- maskString изисква различни параметри от другите методи. Необходими са три параметъра:първият е низът за заместване на знаците; вторият е символът, с който да ги замените; и третият е двуизмерен масив, съдържащ стойността на позицията, от която да започне и дължината на знаците, които трябва да се заменят.
За да използвате класа hash_sha256 в Java, имате нужда от допълнителен параметър за всички извиквания на функции. Параметърът е указател към обекта, който идва от извикване на getptr().
Пример sha256_hash() извикване в Java:obj.sha256_hash(obj.getptr(), input, input.length());
По-долу е показан пример за криптиране, използвано в Java. Тази програма извлича колоната Phone_Number от база данни на Oracle и я криптира с помощта на функцията за буквено-цифрово криптиране на FieldShield, запазваща формата.
Функциите в SDK са съвместими с тези в основния пакет FieldShield, така че можете да шифровате в един и да декриптирате в друг, например. За всякакви въпроси или техническа поддръжка с помощта на SDK, свържете се с вашия представител на IRI.