1) Я не мог найти реализацию Java где-нибудь для шифрования JCE AES, но кто-нибудь знает, если массив байтов, который он принимает в качестве аргумента, рассматривается как подписанный или без знака? Код я использую:Вопросы криптографии Java (шифрование AES-ECB)
public static byte [] ecbAesEncrypt(byte [] key, byte [] currentVector) {
SecretKeySpec keySpec = null;
Cipher cipher = null;
byte [] encryptedValue = null;
try {
keySpec = new SecretKeySpec(key, "AES");
cipher = Cipher.getInstance("AES/ECB/NoPadding");
cipher.init(Cipher.ENCRYPT_MODE, keySpec);
encryptedValue = cipher.doFinal(currentVector);
}
catch (Exception e) {
e.printStackTrace();
return null;
}
if (DEBUG)
printHex("AES-ECB encrypt: ", encryptedValue);
return encryptedValue;
}
2) Будет ли побитового XOR 2 подписанными байтов дают те же результаты, что и побитовое исключающее ИЛИ 2 беззнаковых байтов? Под этим я подразумеваю, что только представления бит будут одинаковыми. Я думаю, да, но просто хочу убедиться.
3) Несколько связанный вопрос 1, какие побитовые операции будут приводить к различным результатам между подписанными и неподписанными байтами?
1) Я googled для 'site: docjar.org openjdk aes' и нашел это: [link] (http://www.docjar.org/html/api/com/sun/crypto/provider/AESCrypt. java.html). – martijno