これを java 経由で実装します。BouncyCastle Provider はブロック モード = ECB およびパディング モード = PKCS7Padding を使用します。
長さが 32 バイトのデータ (abababababababab の 16 進値である 61626162616261626162616261626162 など) を暗号化すると、長さが 64 バイトの暗号テキスト (f21ee0564ebd5274e10bf4590594b1e16a19592b917b19ee106f1) が得られることに注意してください。私が読んだところによると、長さが32バイト未満のデータを暗号化すると、アルゴリズムはそれを32バイト長にパディングし、32バイト長の暗号テキストを生成しますが、正確に32バイト長のデータを入力すると、32を受け取るべきではありませんバイト長の暗号テキスト、また、32 バイトを超える長さのデータを入力すると、64 バイトの暗号テキストに正しくパディングされます
これは私のコードがどのように見えるかです:
public static byte[] encrypt(byte[] plainText, byte[] keyBytes)
throws GeneralSecurityException {
SecretKeySpec key = new SecretKeySpec(keyBytes, "AES");
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding", "BC");
cipher.init(Cipher.ENCRYPT_MODE, key);
byte[] cipherText = cipher.doFinal(plainText);
return cipherText;
}
お返事ありがとうございます