encrypt()
encrypt() 関数は、指定した暗号アルゴリズムとキーを使用してバイナリデータを暗号化し、バイナリで返します。
構文
encrypt(CIPHER, KEY, DATA[, IV])
パラメーター
CIPHERアルゴリズム/モード/パディング形式で構成された文字列です。モードとパディングを省略してアルゴリズムのみを入力すると、そのアルゴリズムのデフォルト値を適用します。
使用できるアルゴリズム、モード、パディングは Java Security Standard Algorithm Names のドキュメントを参照してください。
Note
以下は、すべての Java 実装が必ずサポートしなければならない形式です。DES、DESede アルゴリズム、ECB モードは安全ではないため、外部システムとの互換性の問題などがある場合にのみ使用してください。括弧内は暗号化ビット数を示します。
- AES/CBC/NoPadding (128)
- AES/CBC/PKCS5Padding (128)
- AES/ECB/NoPadding (128)
- AES/ECB/PKCS5Padding (128)
- AES/GCM/NoPadding (128)
- DES/CBC/NoPadding (56)
- DES/CBC/PKCS5Padding (56)
- DES/ECB/NoPadding (56)
- DES/ECB/PKCS5Padding (56)
- DESede/CBC/NoPadding (168)
- DESede/CBC/PKCS5Padding (168)
- DESede/ECB/NoPadding (168)
- DESede/ECB/PKCS5Padding (168)
- RSA/ECB/PKCS1Padding (1024, 2048)
- RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)
- RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024, 2048)
- AES/CBC/NoPadding (128)
- AES/CBC/PKCS5Padding (128)
- AES/ECB/NoPadding (128)
- AES/ECB/PKCS5Padding (128)
- AES/GCM/NoPadding (128)
- DES/CBC/NoPadding (56)
- DES/CBC/PKCS5Padding (56)
- DES/ECB/NoPadding (56)
- DES/ECB/PKCS5Padding (56)
- DESede/CBC/NoPadding (168)
- DESede/CBC/PKCS5Padding (168)
- DESede/ECB/NoPadding (168)
- DESede/ECB/PKCS5Padding (168)
- RSA/ECB/PKCS1Padding (1024, 2048)
- RSA/ECB/OAEPWithSHA-1AndMGF1Padding (1024, 2048)
- RSA/ECB/OAEPWithSHA-256AndMGF1Padding (1024, 2048)
KEY- 指定した暗号アルゴリズムに適合するサイズのバイナリキーです。アルゴリズムごとのキー長は以下のとおりです。
- AES: 16バイト(128ビット)、24バイト(192ビット)、32バイト(256ビット)から選択
- RSA: 128バイト(1024ビット)、256バイト(2048ビット)から選択
DATA- 暗号化するバイナリデータです。
IV- CBC などの初期化ベクトル(IV、Initialization Vector)が必要な動作モードを使用する場合に指定するバイナリ値です。
説明
encrypt() 関数は Java の Cipher クラスを使用して、指定した暗号アルゴリズムとキーでバイナリデータを暗号化し、バイナリを返します。
KEY または DATA が null であるか、バイナリ型でない場合は null を返します。IV が指定されている場合、IV もバイナリ型でなければならず、そうでない場合は null を返します。暗号化中にエラーが発生した場合は null を返します。
Caution
Logpresso は互換性のために、Java が提供するさまざまな暗号アルゴリズムをサポートしています。ただし、DES 系列や ECB モードのような安全でない暗号アルゴリズムやモードは使用しないことを推奨します。
エラーコード
| エラーコード | 説明 |
|---|---|
| 90660 | パラメーターが3個未満の場合 |
| 90661 | 無効な暗号アルゴリズムを指定した場合 |
使用例
-
AES アルゴリズムでデータを暗号化
json "{}" | eval key = frombase64("mRcOlK9V47rjVL/RBYQYRw=="), data = encode("hello, world!"), encrypted = tobase64(encrypt("AES", key, data)) | # encrypted: y7+NQQ9/9xGtbBq5pgBvCA== -
CBC モードで IV を指定して暗号化
json "{}" | eval key = frombase64("mRcOlK9V47rjVL/RBYQYRw=="), iv = randbytes(16), data = encode("hello, world!"), encrypted = encrypt("AES/CBC/PKCS5Padding", key, data, iv) -
KEYまたはDATAがnullの場合json "{}" | eval result = encrypt("AES", null, encode("data")) | # result: null
互換性
encrypt() 関数は Sonar 4.0以前のバージョンから提供されています。