-2

だから私は、事前定義された aes 関数を使用して独自の CBC および CTR アルゴリズムを作成することになっているこの課題に取り組んでいます。出力 80 など) ここでは、16 進数からバイトへの変換とバイトから 16 進数への変換を使用して、私が使用しているコードを示します。

public static String encrypt(String PT,String skey) throws Exception, NoSuchPaddingException {
      Cipher cipher = Cipher.getInstance("AES");
        SecretKeySpec key = new SecretKeySpec(skey.getBytes("ascii"), "AES");
        cipher.init(Cipher.ENCRYPT_MODE, key);
        byte[] val = hexToBytes(PT);
        byte[] encVal = cipher.doFinal(val);

        return byteToString(encVal);
}

変換関数は完全に機能しており、val のサイズは n * 16 バイト、encVal のサイズは (n+1) * 16 バイトです。

4

1 に答える 1

0

これはパディングによるものです。

Cipher.getInstance("AES");

モードとパディングにプロバイダー固有のデフォルト値を使用します。JDK 6 および 7 の場合、これはデフォルトでAES/ECB/PKCS5Padding.

于 2013-04-17T08:23:55.403 に答える