クラス HybsCryptography
java.lang.Object
org.opengion.fukurou.security.HybsCryptography
HybsCryptography は、セキュリティ強化の為の Hybs独自の暗号化クラスです。
このクラスは、暗号化キーを受け取り、それに基づいて暗号化/復号化を行います。
ここでの暗号化は、秘密キー方式でバイト文字列に変換されたものを、16進アスキー文字に
直して、扱っています。よって、暗号化/復号化共に、文字列として扱うことが可能です。
- 変更履歴:
- 4.0.0.0 (2005/08/31) 新規追加, 5.9.10.0 (2019/03/01) クラウドストレージ対応を追加。(Fileクラスを拡張)
- 機能分類
- ライセンス管理
- 導入されたバージョン:
- JDK5.0,
-
コンストラクタの概要
コンストラクタコンストラクタ説明内部設定の秘密鍵を使用して,暗号化を行うオブジェクトを構築します。HybsCryptography
(String cryptKey) 秘密鍵の文字列を受け取って,暗号化を行うオブジェクトを構築します。 -
メソッドの概要
修飾子とタイプメソッド説明static String
byte2hexa
(byte[] input) バイト配列を16進数アスキー文字列に変換します。セキュリティカラムのDBTyepに対してHybs独自の復号化を行います。セキュリティカラムのDBTyepに対してHybs独自の暗号化を行います。static String
MessageDigestにより、MD5 でハッシュした文字に変換します。static String
MessageDigestにより、MD5 でハッシュした文字に変換します。static String
getMD5
(FileOperation input) MessageDigestにより、MD5 でハッシュした文字に変換します。static String
MessageDigestにより、SHA1 でハッシュした文字に変換します。static String
MessageDigestにより、SHA-512 でハッシュした文字に変換します。static byte[]
16進数アスキー文字列をバイト配列に変換します。static void
暗号化のテストを行う為のメインメソッド java HybsCryptography KEY TEXT で起動します。
-
コンストラクタの詳細
-
HybsCryptography
public HybsCryptography()内部設定の秘密鍵を使用して,暗号化を行うオブジェクトを構築します。 ここでの暗号化は、Java標準のセキュリティパッケージを使用しています。- 変更履歴:
- 6.2.5.0 (2015/06/05) 引数付コンストラクタを使用
-
HybsCryptography
秘密鍵の文字列を受け取って,暗号化を行うオブジェクトを構築します。 ここでの暗号化は、Java標準のセキュリティパッケージを使用しています。 秘密鍵のサイズを、8 の倍数 (32 以上 448 以下) にする必要があります。- パラメータ:
cryptKey
- 暗号化を行う秘密鍵- 変更履歴:
- 5.8.8.0 (2015/06/05) null時の挙動はデフォルトキーを利用する
-
-
メソッドの詳細
-
encrypt
セキュリティカラムのDBTyepに対してHybs独自の暗号化を行います。 暗号化されたデータは、通常 byte 文字ですが、16進数アスキー文字列に変換 したものを返します。 この暗号化では、引数が null の場合は、ゼロ文字列を返します。- パラメータ:
org
- 暗号化を行う元の文字列- 戻り値:
- 暗号化された文字列(HEXADECIMAL化)
- 変更履歴:
- 5.7.2.1 (2014/01/17) Exceptionをまとめます。
- このメソッドは、nullを返しません
-
decrypt
セキュリティカラムのDBTyepに対してHybs独自の復号化を行います。 ここでの復号化は、encrypt で暗号化された文字を戻す場合に使用します。 この復号化では、null は復号化できないため、ゼロ文字列を返します。- パラメータ:
hex
- 復号化を行う暗号化された16進数アスキー文字列- 戻り値:
- 復号化された元の文字列
- 変更履歴:
- 5.7.2.1 (2014/01/17) Exceptionをまとめます。
- このメソッドは、nullを返しません
-
byte2hexa
バイト配列を16進数アスキー文字列に変換します。 バイト配列を、2文字の0~9,a~fのアスキーに変換されます。 これにより、すべての文字を、アスキー化できます。 アスキー化で、上位が0F以下の場合でも、0 を出すことで、固定長に変換します。 よって、入力バイトの2倍のlength()を持ったStringを作成します。- パラメータ:
input
- バイト配列- 戻り値:
- 16進数アスキー文字列
-
hexa2byte
16進数アスキー文字列をバイト配列に変換します。 2文字の0~9,a~fのアスキー文字列を、バイト配列に変換されます。 よって、入力Stringの1/2倍のlengthを持ったバイト配列を作成します。- パラメータ:
input
- 16進数アスキー文字列- 戻り値:
- バイト配列
-
getMD5
MessageDigestにより、MD5 でハッシュした文字に変換します。 MD5で、16Byteのバイトに変換されますが、ここでは、16進数で文字列に変換しています。 変換方法は、各バイトの上位/下位を16進文字列に変換後、連結しています。 これは、Tomcat等の digest 認証(MD5使用時)と同じ変換方式です。 連結後の文字列長は、32バイト(固定)になります。- パラメータ:
input
- 変換前の文字列- 戻り値:
- MD5でハッシュした文字列。32バイト(固定)
- 変更履歴:
- 5.2.2.0 (2010/11/01) util.StringUtil から移動
-
getMD5
MessageDigestにより、MD5 でハッシュした文字に変換します。 MD5で、16Byteのバイトに変換されますが、ここでは、16進数で文字列に変換しています。 変換方法は、各バイトの上位/下位を16進文字列に変換後、連結しています。 これは、Tomcat等の digest 認証(MD5使用時)と同じ変換方式です。 連結後の文字列長は、32バイト(固定)になります。 下記サイトを参考に作成しています。 https://stackoverflow.com/questions/304268/getting-a-files-md5-checksum-in-java- パラメータ:
input
- 変換前のFileOperationオブジェクト- 戻り値:
- MD5でハッシュした文字列。32バイト(固定)
- 変更履歴:
- 5.9.10.0 (2019/03/01) 新規追加。クラウドストレージ対応。
-
getMD5
MessageDigestにより、MD5 でハッシュした文字に変換します。 MD5で、16Byteのバイトに変換されますが、ここでは、16進数で文字列に変換しています。 変換方法は、各バイトの上位/下位を16進文字列に変換後、連結しています。 これは、Tomcat等の digest 認証(MD5使用時)と同じ変換方式です。 連結後の文字列長は、32バイト(固定)になります。- パラメータ:
input
- 変換前のFile- 戻り値:
- MD5でハッシュした文字列。32バイト(固定)
- 変更履歴:
- 5.7.2.1 (2014/01/17) Exceptionをまとめます。, 5.9.10.0 (2019/03/01) クラウドストレージ対応を追加
-
getSHA1
MessageDigestにより、SHA1 でハッシュした文字に変換します。 16進数で文字列に変換しています。 変換方法は、各バイトの上位/下位を16進文字列に変換後、連結しています。 これは、Tomcat等の digest 認証と同じ変換方式です。- パラメータ:
input
- 変換前の文字列- 戻り値:
- SHA1でハッシュした文字列。32バイト(固定)
- 変更履歴:
- 5.9.27.1 (2010/12/08) 新規作成
-
getSHA512
MessageDigestにより、SHA-512 でハッシュした文字に変換します。 16進数で文字列に変換しています。 変換方法は、各バイトの上位/下位を16進文字列に変換後、連結しています。 これは、Tomcat等の digest 認証と同じ変換方式です。- パラメータ:
input
- 変換前の文字列- 戻り値:
- SHA-512でハッシュした文字列 128バイト
- 変更履歴:
- 5.10.10.2 (2019/04/12) 新規作成
-
main
暗号化のテストを行う為のメインメソッド java HybsCryptography KEY TEXT で起動します。 KEY : 秘密鍵(8 の倍数 (32 以上 448 以下)文字) TEXT : 変換する文字列- パラメータ:
args
- 引数配列- 変更履歴:
- 5.2.2.0 (2010/11/01) 循環参照の解消(LogWriter 削除)
-