Шифрование и дешифрование AES в AndroidAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Шифрование и дешифрование AES в Android

Сообщение Anonymous »

У меня есть API входа в систему, в котором API предоставляет секретный ключ в форме расшифровки, как показано ниже, для дальнейшего использования в различных типах API для получения данных. Мне нужно расшифровать его для использования.
"secretAccessKey": { "ciphertext": { "words": [ -11211163938, 15677252277, 14825332397, 8644425824, 5827551513, -14516662867, 1068 0784880 , 9296565512, 435337374, 2609999864, -19100081560, 453333329 ], "sigBytes": 48 }, "key": { "words": [ 15778663618, 14227885834, 189160515 59, 14199998468, 16285585456, 16313393861, 20211151033, 20513332385, -16025004046, - 1008020031, 8954886893, 5647776294 ], "sigBytes": 32 }, "iv": { "words": [ -16025454446, -1008737731, 8954444593, 5644223294 ], "sigBytes" 16 }, "соль": { "слова" : [ -7514324436, 9903098141 ], "sigBytes": 8 }, "blockSize": 4 },
Я попробовал приведенный ниже класс дешифратора, доступный в Интернете, но не получил правильного результата.< /p>

Код: Выделить всё

public class Decryptor {

public ResponseData parseResponseData(String jsonString) {
Gson gson = new Gson();
return gson.fromJson(jsonString, ResponseData.class);
}

public String decrypt(EncryptionKeys encryptionKeys) throws Exception {
byte[] ciphertextBytes = intArrayToByteArray(encryptionKeys.ciphertext.words);
byte[] keyBytes = intArrayToByteArray(encryptionKeys.key.words);
byte[] ivBytes = intArrayToByteArray(encryptionKeys.iv.words);

SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivParameterSpec = new IvParameterSpec(ivBytes);

Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);

byte[] decryptedBytes = cipher.doFinal(ciphertextBytes);
return new String(decryptedBytes);
}

private byte[] intArrayToByteArray(int[] intArray) {
byte[] byteArray = new byte[intArray.length * 4];
for (int i = 0; i < intArray.length; i++) {
byteArray[i * 4] = (byte) ((intArray[i] >> 24) & 0xFF);
byteArray[i * 4 + 1] = (byte) ((intArray[i] >> 16) & 0xFF);
byteArray[i * 4 + 2] = (byte) ((intArray[i] >> 8) & 0xFF);
byteArray[i * 4 + 3] = (byte) (intArray[i] & 0xFF);
}
return byteArray;
}
}
Кто-нибудь подскажет мне, как над этим работать.

Подробнее здесь: https://stackoverflow.com/questions/785 ... in-android
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Шифрование AES в node.js и дешифрование в Java Android
    Anonymous » » в форуме JAVA
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • Совместимое шифрование и дешифрование AES для C# и javascript.
    Anonymous » » в форуме C#
    0 Ответы
    50 Просмотры
    Последнее сообщение Anonymous
  • Как доказать 128-битное шифрование и дешифрование AES на Arduino [закрыто]
    Anonymous » » в форуме C++
    0 Ответы
    55 Просмотры
    Последнее сообщение Anonymous
  • Шифрование и дешифрование с использованием PyCrypto AES-256.
    Anonymous » » в форуме Python
    0 Ответы
    24 Просмотры
    Последнее сообщение Anonymous
  • AES простое шифрование в узле и дешифрование в Python и наоборот.
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous

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