sql >> Database teknologi >  >> RDS >> Database

FieldShield SDK

IRI leverer et softwareudviklingskit (SDK) til at hjælpe FieldShield-brugere med at anvende kryptering, dekryptering, hash- og redaktionsalgoritmer på kolonneniveau i Java- og .NET-projekter til flere in-situ eller dynamiske datamaskeringskrav. Denne artikel dækker biblioteket og de databeskyttelsesfunktioner på felt-/kolonneniveau, det understøtter.

Koden for de viste eksempler er i C#, selvom funktionskaldene vil være de samme i alle .NET-sprogene. Java bruger de samme metoder, men nogle kræver en ekstra parameter for at blive brugt; disse tilfælde nævnes, hvor det er nødvendigt.

Der er to typer klasser i SDK'et:krypteringsklasser og konverteringsklasser. Krypterings- og dekrypteringsklasserne er:

  • AES256
  • ASCII
  • Alfanumerisk

Konverteringsklasserne er:

  • Hexadecimal
  • Base64
  • Hash Sha256
  • Tegnudskiftning.

Krypterings- og dekrypteringsklasser

obj=ny ();
int iResult =obj.begin();
obj.setPass(“TEST”);
strengoutput =obj.doTransform ("TestString");
obj.end();

  1. For at bruge en FieldShield-krypteringsklasse skal du oprette et krypteringsklasseobjekt af den ønskede krypteringstype. Mulighederne er:
  • enc_aes256
  • enc_fp_ascii
  • enc_fp_alphanum

(hvor fp refererer til formatbevarende kryptering)

  1. Sæt objektet op ved hjælp af begin()-metoden.
  2. Indstil en  adgangskode til krypteringsklassen ved hjælp af setPass()-metoden.
  3. Kald doTransform()-metoden med en strengparameter (strengen, der skal krypteres). Returværdien er den nye krypterede værdi.
  4. Når du er færdig, skal du slette krypteringsklasseobjektet med end()-metoden.

For at bruge disse funktioner i Java skal du bruge en ekstra parameter for alle funktionskaldene. Parameteren er en pointer til objektet, som kommer fra et kald til getptr().

Eksempel start()-kald i Java:obj.begin(obj.getptr());

For at bruge dekrypteringsværdien for den valgte krypteringsklasse skal du erstatte "enc" med "dec". Resten af ​​metodekaldene vil være de samme.

Eksempel enc_aes256 bliver dec_aes256.

Konverteringsklasser

Hex / Base64 / Hash Sha256

obj =new ();
string encoded =obj.(inputString, input.Length);

Erstat tegn

int[] position ={0,4};
replace_char obj =new replace_char();
string encoded =obj.maskString(inputString, '#', position);

  1. For at bruge en FieldShield-konverteringsklasse skal du oprette et konverteringsklasseobjekt af den ønskede konverteringstype. Mulighederne er:
  • hex
  • base64
  • hash_sha256
  • erstat_char
  1. For at indkode/afkode en værdi skal du kalde den valgte klassers indkodnings-/afkodningsmetode. Denne metode kræver to parametre; strengen, der skal kodes/afkodes, og længden af ​​strengen, der skal kodes. Metoden returnerer den kodede/dekodede streng.
  • hex_encode/hex_decode
  • base64_encode/base64_decode
  • sha256_hash
  • maskestreng
  1. Sha256_hash-metoden er statisk i .NET og kaldes fra et statisk hash_sha256-objekt. I Java kaldes det fra en instans af et hash_sha256-objekt.
  2. maskString kræver andre parametre end de andre metoder. Tre parametre er nødvendige:den første er strengen til at erstatte tegnene i; den anden er karakteren til at erstatte dem med; og den tredje er en todimensional matrix, der indeholder værdien af ​​den position, der skal startes ved, og længden af ​​tegn, der skal erstattes.

For at bruge klassen hash_sha256 i Java skal du bruge en ekstra parameter for alle funktionskaldene. Parameteren er en pointer til objektet, som kommer fra et kald til getptr().

Eksempel sha256_hash()-kald i Java:obj.sha256_hash(obj.getptr(), input, input.length());

Et eksempel på kryptering brugt i Java er vist nedenfor. Dette program henter kolonnen Phone_Number fra en Oracle-database og krypterer den ved hjælp af FieldShields formatbevarende alfanumeriske krypteringsfunktion.

Funktionerne i SDK'et er kompatible med dem i hovedpakken FieldShield, så du kan kryptere i en og dekryptere i en anden, for eksempel. For spørgsmål eller teknisk support ved brug af SDK'et, kontakt din IRI-repræsentant.


  1. Er SQLFiddle brudt? Fejl for Oracle, SQL Server, ...?

  2. Hvordan kan jeg initialisere en MySQL-database med skema i en Docker-container?

  3. Hvordan renser (forhindrer SQL-injektion) dynamisk SQL i SQL Server?

  4. Hvordan får man den numeriske del fra en streng ved hjælp af T-SQL?