public class AesCrypt
extends java.lang.Object
AES(Advanced Encryption Standard) CBC(Cipher Block Chaining mode) 128(キー長、128ビット)
Aesのキー長は256ビットが望ましいが、javaの標準ライブラリの輸出規制の制約から標準では128ビットにしている。
256ビットに変更するには、${JAVA_HOME}/jre/lib/securityのlocal_policy.jarとUS_export_policy.jarを
無制限のものに置き換え、com.graveng.rci.crypt.AesCrypt.keyLengthを16から32(256ビット)に変更する。
キー長が128ビットでも暗号強度を格段に高めるために暗号化/復号化を繰り返すことができる。
ServerConfig.xmlでその繰り返し回数を変更できる。(デフォルトは1)
修飾子とタイプ | フィールドと説明 |
---|---|
static java.lang.String |
Algorithm
アルゴリズム名
|
protected javax.crypto.Cipher |
decrypter
復号化用ライブラリ
|
protected java.lang.String |
encoding
テキスト変換時のエンコーディング
|
protected javax.crypto.Cipher |
encrypter
暗号化用ライブラリ
|
protected byte[] |
ivs
自動生成されるイニシャルベクター(暗号化時のスタートブロック用の初期値 128ビット固定長)
|
static int |
keyLength
キー長が、128ビットなら16(デフォルト)を設定。
|
protected byte[] |
secretKey
自動生成される共通鍵の初期値
|
コンストラクタと説明 |
---|
AesCrypt()
デフォルトコンストラクタ
|
AesCrypt(byte[] secretKey,
byte[] ivs) |
AesCrypt(java.lang.String encoding)
エンコーディングを指定してAesCryptを生成
|
修飾子とタイプ | メソッドと説明 |
---|---|
byte[] |
decrypt(byte[] bytes)
復号化する。
|
byte[] |
decrypt(byte[] bytes,
int repeat)
復号化する。
|
java.lang.String |
decrypt(java.lang.String str64)
Base64の暗号文を復号化する。
|
java.lang.String |
decrypt(java.lang.String str64,
int repeat)
Base64の暗号文を復号化する。
|
byte[] |
decryptFromBase64(java.lang.String str64)
Base64の暗号文を復号化する。
|
byte[] |
encrypt(byte[] bytes)
暗号化する。
|
byte[] |
encrypt(byte[] bytes,
int repeat)
暗号化する。
|
java.lang.String |
encrypt(java.lang.String text)
暗号化し、さらにBase64にする。
|
java.lang.String |
encrypt(java.lang.String text,
int repeat)
暗号化し、さらにBase64にする。
|
java.lang.String |
encryptToBase64(byte[] bytes)
暗号化し、さらにBase64にする。
|
java.lang.String |
getEncoding()
String変換する際のエンコーディングを取得する。
|
byte[] |
getIvs()
初期ベクターを取得する。
|
byte[] |
getSecretKey()
共通鍵を取得する。
|
protected void |
init()
暗号化ライブラリの初期化
|
static void |
main(java.lang.String[] args)
ファイルを暗号化/復号化する。
|
void |
setEncoding(java.lang.String encoding)
String変換する際のエンコーディングを設定する。
|
void |
setIvs(byte[] ivs)
初期ベクターを設定する。
|
void |
setSecretKey(byte[] secretKey)
共通鍵を設定する。
|
protected byte[] |
userSpacePadding(byte[] in)
入力データが16の倍数ではない場合にスペースパディングする
|
protected java.lang.String encoding
public static int keyLength
protected javax.crypto.Cipher encrypter
protected javax.crypto.Cipher decrypter
protected byte[] secretKey
protected byte[] ivs
public static java.lang.String Algorithm
public AesCrypt()
public AesCrypt(java.lang.String encoding)
encoding
- エンコーディング、UTF-8等public AesCrypt(byte[] secretKey, byte[] ivs) throws java.lang.Exception
java.lang.Exception
protected void init() throws java.lang.Exception
java.lang.Exception
- 何らかの例外public java.lang.String getEncoding()
public void setEncoding(java.lang.String encoding)
encoding
- エンコーディング、UTF-8等public byte[] getSecretKey()
public void setSecretKey(byte[] secretKey)
secretKey
- 共通鍵public byte[] getIvs()
public void setIvs(byte[] ivs)
ivs
- 初期ベクターpublic byte[] encrypt(byte[] bytes) throws java.lang.Exception
bytes
- 平文java.lang.Exception
- 何らかの例外public byte[] encrypt(byte[] bytes, int repeat) throws java.lang.Exception
bytes
- 平文repeat
- 繰り返し数java.lang.Exception
- 何らかの例外protected byte[] userSpacePadding(byte[] in)
in
- 入力データpublic byte[] decrypt(byte[] bytes) throws java.lang.Exception
bytes
- 暗号文java.lang.Exception
- 何らかの例外public byte[] decrypt(byte[] bytes, int repeat) throws java.lang.Exception
bytes
- 暗号文repeat
- 繰り返し回数java.lang.Exception
- 何らかの例外public java.lang.String encrypt(java.lang.String text) throws java.lang.Exception
text
- 平文java.lang.Exception
- 何らかの例外public java.lang.String encrypt(java.lang.String text, int repeat) throws java.lang.Exception
text
- 平文repeat
- 繰り返し回数java.lang.Exception
- 何らかの例外public java.lang.String encryptToBase64(byte[] bytes) throws java.lang.Exception
bytes
- 平文java.lang.Exception
- 何らかの例外public java.lang.String decrypt(java.lang.String str64) throws java.lang.Exception
str64
- Base64暗号文java.lang.Exception
- 何らかの例外public java.lang.String decrypt(java.lang.String str64, int repeat) throws java.lang.Exception
str64
- Base64暗号文repeat
- 繰り返し回数java.lang.Exception
- 何らかの例外public byte[] decryptFromBase64(java.lang.String str64) throws java.lang.Exception
str64
- Base64暗号文java.lang.Exception
- 何らかの例外public static void main(java.lang.String[] args)
args
- [0]:暗号化か復号化か指定 "-e" か "-d"、"-eb", "-bd"なら暗号化しBase64化