パッケージ org.opengion.fukurou.security

# クラス HybsCryptography

java.lang.Object
org.opengion.fukurou.security.HybsCryptography

public final class HybsCryptography extends Object
HybsCryptography は、セキュリティ強化の為の Hybs独自の暗号化クラスです。 このクラスは、暗号化キーを受け取り、それに基づいて暗号化/復号化を行います。 ここでの暗号化は、秘密キー方式でバイト文字列に変換されたものを、１６進アスキー文字に 直して、扱っています。よって、暗号化/復号化共に、文字列として扱うことが可能です。

変更履歴:
  4.0.0.0 (2005/08/31) 新規追加, 5.9.10.0 (2019/03/01) クラウドストレージ対応を追加。(Fileクラスを拡張)
機能分類
  ライセンス管理
導入されたバージョン:
  JDK5.0,

- ## コンストラクタの概要

  コンストラクタ
  コンストラクタ
  説明
  `HybsCryptography()`
  内部設定の秘密鍵を使用して，暗号化を行うオブジェクトを構築します。
  `HybsCryptography(String cryptKey)`
  秘密鍵の文字列を受け取って，暗号化を行うオブジェクトを構築します。

- ## メソッドの概要

  修飾子とタイプ
  メソッド
  説明
  `static String`
  `byte2hexa(byte[] input)`
  バイト配列を１６進数アスキー文字列に変換します。
  `String`
  `decrypt(String hex)`
  セキュリティカラムのDBTyepに対してHybs独自の復号化を行います。
  `String`
  `encrypt(String org)`
  セキュリティカラムのDBTyepに対してHybs独自の暗号化を行います。
  `static String`
  `getMD5(File input)`
  MessageDigestにより、MD5 でハッシュした文字に変換します。
  `static String`
  `getMD5(String input)`
  MessageDigestにより、MD5 でハッシュした文字に変換します。
  `static String`
  `getMD5(FileOperation input)`
  MessageDigestにより、MD5 でハッシュした文字に変換します。
  `static String`
  `getSHA1(String input)`
  MessageDigestにより、SHA1 でハッシュした文字に変換します。
  `static String`
  `getSHA512(String input)`
  MessageDigestにより、SHA-512 でハッシュした文字に変換します。
  `static byte[]`
  `hexa2byte(String input)`
  １６進数アスキー文字列をバイト配列に変換します。
  `static void`
  `main(String[] args)`
  暗号化のテストを行う為のメインメソッド java HybsCryptography KEY TEXT で起動します。

  ### クラスから継承されたメソッド java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## コンストラクタの詳細

  - ### HybsCryptography

    public HybsCryptography()
    内部設定の秘密鍵を使用して，暗号化を行うオブジェクトを構築します。 ここでの暗号化は、Java標準のセキュリティパッケージを使用しています。
    変更履歴:
      6.2.5.0 (2015/06/05) 引数付コンストラクタを使用

  - ### HybsCryptography

    public HybsCryptography(String cryptKey)
    秘密鍵の文字列を受け取って，暗号化を行うオブジェクトを構築します。 ここでの暗号化は、Java標準のセキュリティパッケージを使用しています。 秘密鍵のサイズを、8 の倍数 (32 以上 448 以下) にする必要があります。
    パラメータ:
      `cryptKey` - 暗号化を行う秘密鍵
    変更履歴:
      5.8.8.0 (2015/06/05) null時の挙動はデフォルトキーを利用する

- ## メソッドの詳細

  - ### encrypt

    public String encrypt(String org)
    セキュリティカラムのDBTyepに対してHybs独自の暗号化を行います。 暗号化されたデータは、通常 byte 文字ですが、１６進数アスキー文字列に変換 したものを返します。 この暗号化では、引数が null の場合は、ゼロ文字列を返します。
    パラメータ:
      `org` - 暗号化を行う元の文字列
    戻り値:
      暗号化された文字列(HEXADECIMAL化)
    変更履歴:
      5.7.2.1 (2014/01/17) Exceptionをまとめます。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### decrypt

    public String decrypt(String hex)
    セキュリティカラムのDBTyepに対してHybs独自の復号化を行います。 ここでの復号化は、encrypt で暗号化された文字を戻す場合に使用します。 この復号化では、null は復号化できないため、ゼロ文字列を返します。
    パラメータ:
      `hex` - 復号化を行う暗号化された１６進数アスキー文字列
    戻り値:
      復号化された元の文字列
    変更履歴:
      5.7.2.1 (2014/01/17) Exceptionをまとめます。
    このﾒｿｯﾄﾞは、nullを返しません

  - ### byte2hexa

    public static String byte2hexa(byte[] input)
    バイト配列を１６進数アスキー文字列に変換します。 バイト配列を、２文字の0～9,a～ｆのアスキーに変換されます。 これにより、すべての文字を、アスキー化できます。 アスキー化で、上位が0F以下の場合でも、0 を出すことで、固定長に変換します。 よって、入力バイトの２倍のlength()を持ったStringを作成します。
    パラメータ:
      `input` - バイト配列
    戻り値:
      １６進数アスキー文字列

  - ### hexa2byte

    public static byte[] hexa2byte(String input)
    １６進数アスキー文字列をバイト配列に変換します。 ２文字の0～9,a～ｆのアスキー文字列を、バイト配列に変換されます。 よって、入力Stringの１/２倍のlengthを持ったバイト配列を作成します。
    パラメータ:
      `input` - １６進数アスキー文字列
    戻り値:
      バイト配列

  - ### getMD5

    public static String getMD5(String input)
    MessageDigestにより、MD5 でハッシュした文字に変換します。 MD5で、１６Byteのバイトに変換されますが、ここでは、１６進数で文字列に変換しています。 変換方法は、各バイトの上位/下位を１６進文字列に変換後、連結しています。 これは、Tomcat等の digest 認証(MD5使用時)と同じ変換方式です。 連結後の文字列長は、３２バイト(固定)になります。
    パラメータ:
      `input` - 変換前の文字列
    戻り値:
      MD5でハッシュした文字列。３２バイト(固定)
    変更履歴:
      5.2.2.0 (2010/11/01) util.StringUtil から移動

  - ### getMD5

    public static String getMD5(FileOperation input)
    MessageDigestにより、MD5 でハッシュした文字に変換します。 MD5で、１６Byteのバイトに変換されますが、ここでは、１６進数で文字列に変換しています。 変換方法は、各バイトの上位/下位を１６進文字列に変換後、連結しています。 これは、Tomcat等の digest 認証(MD5使用時)と同じ変換方式です。 連結後の文字列長は、３２バイト(固定)になります。 下記サイトを参考に作成しています。 https://stackoverflow.com/questions/304268/getting-a-files-md5-checksum-in-java
    パラメータ:
      `input` - 変換前のFileOperationオブジェクト
    戻り値:
      MD5でハッシュした文字列。３２バイト(固定)
    変更履歴:
      5.9.10.0 (2019/03/01) 新規追加。クラウドストレージ対応。

  - ### getMD5

    public static String getMD5(File input)
    MessageDigestにより、MD5 でハッシュした文字に変換します。 MD5で、１６Byteのバイトに変換されますが、ここでは、１６進数で文字列に変換しています。 変換方法は、各バイトの上位/下位を１６進文字列に変換後、連結しています。 これは、Tomcat等の digest 認証(MD5使用時)と同じ変換方式です。 連結後の文字列長は、３２バイト(固定)になります。
    パラメータ:
      `input` - 変換前のFile
    戻り値:
      MD5でハッシュした文字列。３２バイト(固定)
    変更履歴:
      5.7.2.1 (2014/01/17) Exceptionをまとめます。, 5.9.10.0 (2019/03/01) クラウドストレージ対応を追加

  - ### getSHA1

    public static String getSHA1(String input)
    MessageDigestにより、SHA1 でハッシュした文字に変換します。 １６進数で文字列に変換しています。 変換方法は、各バイトの上位/下位を１６進文字列に変換後、連結しています。 これは、Tomcat等の digest 認証と同じ変換方式です。
    パラメータ:
      `input` - 変換前の文字列
    戻り値:
      SHA1でハッシュした文字列。３２バイト(固定)
    変更履歴:
      5.9.27.1 (2010/12/08) 新規作成

  - ### getSHA512

    public static String getSHA512(String input)
    MessageDigestにより、SHA-512 でハッシュした文字に変換します。 １６進数で文字列に変換しています。 変換方法は、各バイトの上位/下位を１６進文字列に変換後、連結しています。 これは、Tomcat等の digest 認証と同じ変換方式です。
    パラメータ:
      `input` - 変換前の文字列
    戻り値:
      SHA-512でハッシュした文字列 128バイト
    変更履歴:
      5.10.10.2 (2019/04/12) 新規作成

  - ### main

    public static void main(String[] args)
    暗号化のテストを行う為のメインメソッド java HybsCryptography KEY TEXT で起動します。 KEY : 秘密鍵(8 の倍数 (32 以上 448 以下)文字) TEXT : 変換する文字列
    パラメータ:
      `args` - 引数配列
    変更履歴:
      5.2.2.0 (2010/11/01) 循環参照の解消(LogWriter 削除)