IRIは、FieldShieldユーザーがJavaおよび.NETプロジェクトで列レベルの暗号化、復号化、ハッシュ、および編集アルゴリズムを適用して、より多くのin-situまたは動的データマスキング要件に対応できるようにするソフトウェア開発キット(SDK)を提供します。この記事では、ライブラリと、ライブラリがサポートするフィールド/列レベルのデータ保護機能について説明します。
示されている例のコードはC#ですが、関数呼び出しはすべての.NET言語で同じです。 Javaは同じメソッドを使用しますが、使用するために追加のパラメーターを必要とするものもあります。それらのケースは必要に応じて言及されています。
SDKには、暗号化クラスと変換クラスの2種類のクラスがあります。暗号化クラスと復号化クラスは次のとおりです。
- AES256
- ASCII
- 英数字
変換クラスは次のとおりです。
- 16進数
- Base64
- ハッシュSha256
- 文字の置き換え。
暗号化クラスと復号化クラス
int iResult =obj.begin();
obj.setPass( "TEST");
string output =obj.doTransform (“ testString”);
obj.end();
- FieldShield暗号化クラスを使用するには、目的の暗号化タイプの暗号化クラスオブジェクトを作成します。オプションは次のとおりです。
- enc_aes256
- enc_fp_ascii
- enc_fp_alphanum
(ここで、fpはフォーマットを保持する暗号化を指します)
- begin()メソッドを使用してオブジェクトを設定します。
- setPass()メソッドを使用して暗号化クラスのパスワードを設定します。
- 文字列パラメーター(暗号化される文字列)を指定してdoTransform()メソッドを呼び出します。戻り値は、新しい暗号化された値です。
- 終了したら、end()メソッドを使用して暗号化クラスオブジェクトを削除します。
これらの関数をJavaで使用するには、すべての関数呼び出しに追加のパラメーターが必要です。パラメータは、getptr()の呼び出しから取得されたオブジェクトへのポインタです。
Javaでのbegin()呼び出しの例:obj.begin(obj.getptr());
選択した暗号化クラスの復号化値を使用するには、「enc」を「dec」に置き換えます。残りのメソッド呼び出しは同じになります。
例enc_aes256はdec_aes256になります。
変換クラス
Hex / Base64 / Hash Sha256
<クラスタイプ>obj=new <クラスタイプ>();
文字列エンコード=obj。<クラスエンコード/デコードメソッド>(inputString、input.Length);
文字を置き換える
int [] position ={0,4};
replace_char obj =new replace_char();
string encoding =obj.maskString(inputString、‘#’、position);
- FieldShield変換クラスを使用するには、目的の変換タイプの変換クラスオブジェクトを作成します。オプションは次のとおりです。
- hex
- base64
- hash_sha256
- replace_char
- 値をエンコード/デコードするには、選択したクラスのエンコード/デコードメソッドを呼び出します。このメソッドには2つのパラメーターが必要です。エンコード/デコードする文字列、およびエンコードする文字列の長さ。このメソッドは、エンコード/デコードされた文字列を返します。
- hex_encode / hex_decode
- base64_encode / base64_decode
- sha256_hash
- maskString
- sha256_hashメソッドは.NETでは静的であり、静的なhash_sha256オブジェクトから呼び出されます。 Javaでは、hash_sha256オブジェクトのインスタンスから呼び出されます。
- maskStringには、他のメソッドとは異なるパラメーターが必要です。 3つのパラメータが必要です。1つ目は、の文字を置き換える文字列です。 2番目はそれらを置き換える文字です。 3つ目は、開始する位置の値と置き換える文字の長さを含む2次元配列です。
Javaでhash_sha256クラスを使用するには、すべての関数呼び出しに追加のパラメーターが必要です。パラメータは、getptr()の呼び出しから取得されたオブジェクトへのポインタです。
Javaでのsha256_hash()呼び出しの例:obj.sha256_hash(obj.getptr()、input、input.length());
Javaで使用される暗号化の例を以下に示します。このプログラムは、OracleデータベースからPhone_Number列を取得し、FieldShieldの形式を保持する英数字の暗号化関数を使用して暗号化します。
SDKの関数は、メインのFieldShieldパッケージの関数と互換性があるため、たとえば、ある関数で暗号化し、別の関数で復号化できます。 SDKを使用した質問や技術サポートについては、IRI担当者にお問い合わせください。