2016-03-21 1 views
0

Я использую следующий код для создания 128 битного AES шифра,Как создать AES шифр с помощью 128-битной строки содержит 128 0-х

String initializer = "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"; 

byte[] initializer2 = new BigInteger(initializer, 2).toByteArray(); 

String encrypt = encrypt(binary_string_firsthalf, initializer2); 

public static String encrypt(String plainText, byte[] key) { 
    try { 
     SecretKeySpec secretKey = new SecretKeySpec(key, "AES"); 
     Cipher cipher = Cipher.getInstance("AES"); 
     cipher.init(Cipher.ENCRYPT_MODE, secretKey); 
     byte[] cipherText = cipher.doFinal(plainText.getBytes("UTF8")); 
     String encryptedString = new String(Base64.encode(cipherText)); 
     return encryptedString; 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 

Но код возвращает исключение, говоря недействительную длину ключа AES. Как создать шифр с использованием 128 0.

ответ

0
byte[] initializer2 = new byte[16]; 

все, что вам нужно для инициализации массива байтов со значением по умолчанию 0x00.


Не используйте статический предсказуемый ключ, такой как все 0x00 байт для фактического шифрования.