Show page source of Function/util/crypt #96734

= ![ユーティリティ機能]暗号
アプリケーション開発において、パラメータを暗号化して受け渡しする要求があります。[[BR]]

関連するパッケージは、以下です。
 * [http://nimbus.sourceforge.jp/reports/apidocs/jp/ossc/nimbus/util/crypt/package-summary.html jp.ossc.nimbus.util.crypt]

== 暗号化ユーティリティ !CryptParameters #header_CryptParameters
[http://nimbus.sourceforge.jp/reports/apidocs/jp/ossc/nimbus/util/crypt/CryptParameters.html CryptParameters]は、JCE(Java Cryptographic Extension)を使用して、キーと値のペアとなる文字列パラメータを暗号化する機能を提供します。[[BR]]
復号化時には、暗号化文字列の改竄を防ぐためにハッシュ値による改竄チェックを行う機能も提供します。[[BR]]
また、暗号化パラメータ文字列を不正に入手して再利用する事による「なりすまし」を防ぐために、暗号化パラメータ文字列の有効期限チェックを行う機能も提供します。[[BR]]

以下に、簡単な使用例を示します。
{{{ code java
import java.util.Map;

import jp.ossc.nimbus.util.crypt.CryptParameters;

// 秘密鍵
final byte[] KEY = "12345678".getBytes();

// ハッシュ共通鍵(任意)
final String HASH_KEY = "hogehoge";

// CryptParametersの生成
CryptParameters cipher = new CryptParameters(KEY, HASH_KEY);

// 暗号化パラメータの生成
final Map params = cipher.createParametersMap();
params.put("user_id", "m-takata");
params.put("access_id", "hoge");
params.put("password", "fugafuga");
System.out.println("params : " + params);

// 改竄防止用ハッシュの生成
final String hash = cipher.createHash(params);
System.out.println("hash : " + hash);

// 暗号化用初期ベクタの生成
final String iv = cipher.createInitialVector();
System.out.println("iv : " + iv);

// 暗号化
final String encrypt = cipher.encrypt(iv, params);
System.out.println("encrypt : " + encrypt);

// 復号化(改竄チェック及び有効期限チェック付き)
final Map decrypt = cipher.decrypt(iv, encrypt, hash, 10000);
System.out.println("decrypt : " + decrypt);
}}}