A IRI fornece um kit de desenvolvimento de software (SDK) para ajudar os usuários do FieldShield a aplicar algoritmos de criptografia, descriptografia, hash e redação em nível de coluna em projetos Java e .NET para requisitos de mascaramento de dados mais dinâmicos ou in-situ. Este artigo aborda a biblioteca e as funções de proteção de dados em nível de campo/coluna que ela suporta.
O código para os exemplos mostrados está em C#, embora as chamadas de função sejam as mesmas em todas as linguagens .NET. Java usa os mesmos métodos, mas alguns requerem um parâmetro extra para ser usado; esses casos são mencionados quando necessário.
Existem dois tipos de classes no SDK:classes de criptografia e classes de conversão. As classes de criptografia e descriptografia são:
- AES256
- ASCI
- Alfanumérico
As classes de conversão são:
- Hexadecimal
- Base64
- Hash Sha256
- Substituição de caracteres.
Classes de criptografia e descriptografia
int iResult =obj.begin();
obj.setPass(“TEST”);
string output =obj.doTransform (“TestString”);
obj.end();
- Para usar uma classe de criptografia FieldShield, crie um objeto de classe de criptografia do tipo de criptografia desejado. As opções são:
- enc_aes256
- enc_fp_ascii
- enc_fp_alphanum
(onde fp se refere à criptografia com preservação de formato)
- Configure o objeto usando o método begin().
- Defina uma senha para a classe de criptografia usando o método setPass().
- Chame o método doTransform() com um parâmetro de string (a string a ser criptografada). O valor de retorno é o novo valor criptografado.
- Ao terminar, exclua o objeto da classe de criptografia com o método end().
Para usar essas funções em Java, você precisa de um parâmetro extra para todas as chamadas de função. O parâmetro é um ponteiro para o objeto que vem de uma chamada para getptr().
Exemplo de chamada begin() em Java:obj.begin(obj.getptr());
Para usar o valor de descriptografia da classe de criptografia escolhida, substitua “enc” por “dec”. O restante das chamadas de método será o mesmo.
Exemplo enc_aes256 torna-se dec_aes256.
Aulas de conversão
Hex / Base64 / Hash Sha256
string codificada =obj.
Substituir caracteres
int[] position ={0,4};
replace_char obj =new replace_char();
string codificada =obj.maskString(inputString, ‘#’, position);
- Para usar uma classe de conversão FieldShield, crie um objeto de classe de conversão do tipo de conversão desejado. As opções são:
- hex
- base64
- hash_sha256
- substituir_char
- Para codificar/decodificar um valor, chame o método de codificar/decodificar as classes escolhidas. Este método precisa de dois parâmetros; a string para codificar/decodificar e o comprimento da string para codificar. O método retorna a string codificada/decodificada.
- hex_encode/hex_decode
- base64_encode/base64_decode
- sha256_hash
- maskString
- O método sha256_hash é estático em .NET e é chamado de um objeto estático hash_sha256. Em Java, ele é chamado de uma instância de um objeto hash_sha256.
- maskString requer parâmetros diferentes dos outros métodos. Três parâmetros são necessários:o primeiro é a string para substituir os caracteres; o segundo é o caractere pelo qual substituí-los; e a terceira é uma matriz bidimensional contendo o valor da posição inicial e o comprimento dos caracteres a serem substituídos.
Para usar a classe hash_sha256 em Java, você precisa de um parâmetro extra para todas as chamadas de função. O parâmetro é um ponteiro para o objeto que vem de uma chamada para getptr().
Exemplo de chamada sha256_hash() em Java:obj.sha256_hash(obj.getptr(), input, input.length());
Um exemplo de criptografia usado em Java é mostrado abaixo. Este programa recupera a coluna Phone_Number de um banco de dados Oracle e a criptografa usando a função de criptografia alfanumérica de preservação de formato do FieldShield.
As funções do SDK são compatíveis com as do pacote FieldShield principal para que você possa criptografar em uma e descriptografar em outra, por exemplo. Para qualquer dúvida ou suporte técnico usando o SDK, entre em contato com seu representante IRI.