Эквивалент Android для этой функции php crypt

Я должен сгенерировать на Android такой же зашифрованный ключ, как эта функция PHP:
Я проверил много методов (экземпляр шифра аргумента), но у меня никогда не было того же самого результата.
Как мы можем воспроизвести эту следующую функцию на Android?

PHP:

$data = str_pad($string_to_encrypt, 16, "0", STR_PAD_RIGHT );
$data = pack('H' . strlen($data), $data);$iv = str_pad("0123456789ABCDEF", 16, "0", STR_PAD_RIGHT );
$key = str_pad("01234567", 8, "0", STR_PAD_RIGHT );

$key = pack('H' . strlen($key), $key);
$iv = pack('H' . strlen($iv), $iv);//ciphermode, key, data, mode, iv
$baDataCiphered=mcrypt_cbc (MCRYPT_BLOWFISH, $key, $data, MCRYPT_ENCRYPT, $iv);

return strToHex($baDataCiphered);

-1

Решение

ваша проблема в том, что AES не поддерживает 8-байтовые ключи, он поддерживает только 16, 24 и 32 байта.

пока вы предоставляете ключ 8 байтов 01234567

так что вам нужно будет изменить длину ключа — возможно, его заполнить — на 16 байтов.

AES — это вариант Rijndael, который имеет фиксированный размер блока 128 бит,
и размер ключа 128, 192 или 256 бит.

в этом случае вы столкнетесь с новой проблемой DES который поддерживает только длину ключа 8 байт.

Ключ номинально хранится или передается как 8 байтов, каждый с нечетным
четности.

но в качестве альтернативы вы можете использовать ThreeDES вместо этого используется длина ключа 8 * 3 (24), что, я думаю, не будет конфликтовать с AES.


Тем не менее, вы должны иметь в виду, что mcrypt_cbc функция.

Предупреждение

Эта функция УСТАРЕЛА в PHP 5.5.0 и УДАЛЕНА в PHP 7.0.0.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector