Java: как реализовать AES с 128 битами с CFB и без заполнения - PullRequest
2 голосов
/ 06 июня 2011

кто-нибудь может дать мне какое-либо руководство к этой проблеме?Мне нужно знать, как шифровать и дешифровать с помощью AES с использованием как минимум 128 битов с CFB и без заполнения.

Некоторые коды или ссылки будут очень полезны.(я уже смотрю на Google, но не повезло).

ОБНОВЛЕНИЕ:

Работает нормально!

public byte[] crypt() {
    byte[] crypt = null;
    try {
        final Cipher cipher = Cipher.getInstance("AES/CFB/NoPadding", "SunJCE");
        final SecretKey skeySpec = KeyGenerator.getInstance("AES").generateKey();
        cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
        crypt = cipher.doFinal(new byte[]{0, 1, 2, 3});


    } catch (Exception ex) {
         throw new RuntimeException(ex);
    }
        return crypt;
}

Возвращает ноль .. почему?

public String decrypt(byte[] text) {
    byte[] crypt = null;
    String plainText = null;
    try {
        final Cipher cipher = Cipher.getInstance("AES/CFB/NoPadding", "SunJCE");
        final SecretKey skeySpec = KeyGenerator.getInstance("AES").generateKey();
        cipher.init(Cipher.DECRYPT_MODE, skeySpec);

        crypt = cipher.doFinal(text);
        plainText = new String(crypt);



    } catch (Exception ex) {
          throw new RuntimeException(ex);
    }
        return plainText;
}

С уважением, Вальтер Энрике.

1 Ответ

3 голосов
/ 06 июня 2011

Попробуй:

final Cipher cipher = Cipher.getInstance("AES/CFB/NoPadding", "SunJCE");
final SecretKey skeySpec = KeyGenerator.getInstance("AES")
        .generateKey();
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
System.out.println(Arrays.toString(cipher.doFinal(new byte[] { 0, 1, 2,
            3 })));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...