Расшифрование BytebufferJAVA

Программисты JAVA общаются здесь
Anonymous
Расшифрование Bytebuffer

Сообщение Anonymous »

Я писал программу VoIP и использовал приведенный ниже код, чтобы зашифровать некоторые данные для отправки в Java: < /p>
private byte[] encryptData(byte[] data){
ByteBuffer unwrapEncrypt = ByteBuffer.allocate(data.length + 2);
short authKey = 10;
unwrapEncrypt.putShort(authKey);
ByteBuffer plainText = ByteBuffer.wrap(data);

for (int i = 0; i < keys.size(); i++) {
for (int j = 0; j < data.length / 4; j++) {
int fourByte = plainText.getInt();
fourByte = fourByte ^ keys.get(i); // XOR operation with key
if(i == keys.size() - 1) {
unwrapEncrypt.putInt(fourByte);
}
}
plainText.rewind();
}

return unwrapEncrypt.array();
}
< /code>
и попытался сделать наоборот, чтобы расшифровать его на другом конце: < /p>
ByteBuffer cipherText = ByteBuffer.wrap(block);
short authKey = cipherText.getShort();

if (authKey == 10) {

for (int i = 0; i < keys.size(); i++) {

for (int j = 0; j < block.length / 4; j++) {
int fourByte = cipherText.getInt();
fourByte = fourByte ^ keys.get(i); // XOR decrypt
if (i == keys.size() - 1) {
unwrapDecrypt.putInt(fourByte);
}
}
cipherText.rewind();
}

byte[] decryptedBlock = unwrapDecrypt.array();
< /code>
Однако полученные данные все еще несколько зашифрованы, и поэтому звук искажен. Используемые ключи находятся в обратном порядке в приемнике, так что это не должно быть проблемой. Я предполагаю, что проблема связана с индексацией байтобафферов, но я не уверен, как продолжить.


Подробнее здесь: https://stackoverflow.com/questions/794 ... decryption

Вернуться в «JAVA»