IRI tillhandahåller ett mjukvaruutvecklingskit (SDK) för att hjälpa FieldShield-användare att tillämpa kryptering, dekryptering, hash- och redaktionsalgoritmer på kolumnnivå i Java- och .NET-projekt för fler krav på in-situ eller dynamisk datamaskering. Den här artikeln täcker biblioteket och dataskyddsfunktionerna på fält-/kolumnnivå som det stöder.
Koden för exemplen som visas är i C#, även om funktionsanropen kommer att vara desamma i alla .NET-språk. Java använder samma metoder, men vissa kräver en extra parameter för att användas; dessa fall nämns där det behövs.
Det finns två typer av klasser i SDK:n:krypteringsklasser och konverteringsklasser. Krypterings- och dekrypteringsklasserna är:
- AES256
- ASCII
- Alfanumerisk
Konverteringsklasserna är:
- Hexadecimal
- Base64
- Hash Sha256
- Teckenbyter ut.
Krypterings- och dekrypteringsklasser
int iResult =obj.begin();
obj.setPass(“TEST”);
strängutgång =obj.doTransform ("TestString");
obj.end();
- För att använda en FieldShield-krypteringsklass, skapa ett krypteringsklassobjekt av önskad krypteringstyp. Alternativen är:
- enc_aes256
- enc_fp_ascii
- enc_fp_alphanum
(där fp hänvisar till formatbevarande kryptering)
- Ställ in objektet med metoden begin().
- Ange ett lösenord för krypteringsklassen med metoden setPass().
- Anropa metoden doTransform() med en strängparameter (strängen som ska krypteras). Returvärdet är det nya krypterade värdet.
- När du är klar, ta bort krypteringsklassobjektet med end()-metoden.
För att använda dessa funktioner i Java behöver du en extra parameter för alla funktionsanrop. Parametern är en pekare till objektet som kommer från ett anrop till getptr().
Exempel start()-anrop i Java:obj.begin(obj.getptr());
För att använda dekrypteringsvärdet för den valda krypteringsklassen, ersätt "enc" med "dec". Resten av metodanropen kommer att vara desamma.
Exempel enc_aes256 blir dec_aes256.
Konverteringsklasser
Hex / Base64 / Hash Sha256
string encoded =obj.
Ersätt tecken
int[] position ={0,4};
replace_char obj =new replace_char();
sträng kodad =obj.maskString(inputString, '#', position);
- För att använda en FieldShield-konverteringsklass, skapa ett konverteringsklassobjekt av önskad konverteringstyp. Alternativen är:
- hex
- base64
- hash_sha256
- ersätt_char
- För att koda/avkoda ett värde, anropa den valda klassmetoden koda/avkoda. Denna metod behöver två parametrar; strängen som ska kodas/avkodas och längden på strängen som ska kodas. Metoden returnerar den kodade/avkodade strängen.
- hex_encode/hex_decode
- base64_encode/base64_decode
- sha256_hash
- maskString
- Sha256_hash-metoden är statisk i .NET och anropas från ett statiskt hash_sha256-objekt. I Java anropas det från en instans av ett hash_sha256-objekt.
- maskString kräver andra parametrar än de andra metoderna. Tre parametrar behövs:den första är strängen för att ersätta tecknen i; den andra är karaktären att ersätta dem med; och den tredje är en tvådimensionell matris som innehåller värdet på positionen att börja på och längden på tecken som ska ersättas.
För att använda klassen hash_sha256 i Java behöver du en extra parameter för alla funktionsanrop. Parametern är en pekare till objektet som kommer från ett anrop till getptr().
Exempel sha256_hash()-anrop i Java:obj.sha256_hash(obj.getptr(), input, input.length());
Ett exempel på kryptering som används i Java visas nedan. Det här programmet hämtar kolumnen Phone_Number från en Oracle-databas och krypterar den med FieldShields formatbevarande alfanumeriska krypteringsfunktion.
Funktionerna i SDK:n är kompatibla med de i huvudpaketet FieldShield så att du till exempel kan kryptera i en och dekryptera i en annan. Kontakta din IRI-representant om du har frågor eller teknisk support med hjälp av SDK:n.