IRI fornisce un kit di sviluppo software (SDK) per aiutare gli utenti FieldShield ad applicare algoritmi di crittografia, decrittografia, hashing e redazione a livello di colonna nei progetti Java e .NET per requisiti di mascheramento dei dati più in-situ o dinamici. Questo articolo illustra la libreria e le funzioni di protezione dei dati a livello di campo/colonna che supporta.
Il codice per gli esempi mostrati è in C#, anche se le chiamate di funzione saranno le stesse in tutti i linguaggi .NET. Java utilizza gli stessi metodi, ma alcuni richiedono un parametro aggiuntivo da utilizzare; questi casi sono menzionati ove necessario.
Esistono due tipi di classi nell'SDK:classi di crittografia e classi di conversione. Le classi di crittografia e decrittografia sono:
- AES256
- ASCII
- Alfanumerico
Le classi di conversione sono:
- Esadecimale
- Base64
- Hash Sha256
- Sostituzione del personaggio.
Classi di crittografia e decrittografia
int iResult =obj.begin();
obj.setPass(“TEST”);
string output =obj.doTransform ("TestString");
obj.end();
- Per utilizzare una classe di crittografia FieldShield, creare un oggetto classe di crittografia del tipo di crittografia desiderato. Le opzioni sono:
- enc_aes256
- enc_fp_ascii
- enc_fp_alphanum
(dove fp si riferisce alla crittografia di conservazione del formato)
- Imposta l'oggetto usando il metodo begin().
- Imposta una password per la classe di crittografia utilizzando il metodo setPass().
- Chiama il metodo doTransform() con un parametro stringa (la stringa da crittografare). Il valore restituito è il nuovo valore crittografato.
- Una volta terminato, elimina l'oggetto della classe di crittografia con il metodo end().
Per utilizzare queste funzioni in Java, è necessario un parametro aggiuntivo per tutte le chiamate di funzione. Il parametro è un puntatore all'oggetto che proviene da una chiamata a getptr().
Esempio di chiamata begin() in Java:obj.begin(obj.getptr());
Per utilizzare il valore di decrittazione della classe di crittografia scelta, sostituire "enc" con "dec". Il resto delle chiamate al metodo sarà lo stesso.
Esempio enc_aes256 diventa dec_aes256.
Classi di conversione
Hex / Base64 / Hash Sha256
stringa codificata =obj.
Sostituisci personaggi
int[] position ={0,4};
replace_char obj =new replace_char();
string encoded =obj.maskString(inputString, '#', position);
- Per utilizzare una classe di conversione FieldShield, creare un oggetto classe di conversione del tipo di conversione desiderato. Le opzioni sono:
- esadecimale
- base64
- hash_sha256
- sostituisci_char
- Per codificare/decodificare un valore, chiama il metodo di codifica/decodifica delle classi scelte. Questo metodo richiede due parametri; la stringa da codificare/decodificare e la lunghezza della stringa da codificare. Il metodo restituisce la stringa codificata/decodificata.
- codifica_esadecimale/decodifica_esadecimale
- base64_encode/base64_decode
- sha256_hash
- Stringa maschera
- Il metodo sha256_hash è statico in .NET e viene chiamato da un oggetto statico hash_sha256. In Java, viene chiamato da un'istanza di un oggetto hash_sha256.
- maskString richiede parametri diversi rispetto agli altri metodi. Sono necessari tre parametri:il primo è la stringa in cui sostituire i caratteri; il secondo è il carattere con cui sostituirli; e il terzo è un array bidimensionale contenente il valore della posizione da cui partire e la lunghezza dei caratteri da sostituire.
Per utilizzare la classe hash_sha256 in Java, è necessario un parametro aggiuntivo per tutte le chiamate di funzione. Il parametro è un puntatore all'oggetto che proviene da una chiamata a getptr().
Esempio di chiamata sha256_hash() in Java:obj.sha256_hash(obj.getptr(), input, input.length());
Di seguito viene mostrato un esempio di crittografia utilizzata in Java. Questo programma recupera la colonna Phone_Number da un database Oracle e la crittografa utilizzando la funzione di crittografia alfanumerica di conservazione del formato di FieldShield.
Le funzioni nell'SDK sono compatibili con quelle nel pacchetto FieldShield principale, quindi puoi crittografare in uno e decrittografare in un altro, ad esempio. Per qualsiasi domanda o supporto tecnico sull'utilizzo dell'SDK, contatta il tuo rappresentante IRI.