security — Что эквивалентно этой функции Cipher.encrypt () в переполнении стека

Клиент отправил мне зашифрованное сообщение, используя функцию Cipher.encrypt () (с какого-то неизвестного мне языка программирования), как описано ниже:

    var key : String = "I deleted the key intentionally";
var encodedKey : Bytes = Encoding.toBase64(new Bytes(key, "UTF8"));

var salt : String = "263BC60258FF4876";

var message : String = "1234567891234567";

var encryptAlgorithm : String = "AES/CBC/PKCS5Padding";

var encryptedMessage : Cipher = new Cipher();
encryptedMessage = encryptedMessage.encrypt(message, encodedKey, encryptAlgorithm, salt, 1);

Мне нужно расшифровать сообщение, чтобы извлечь данные из него с помощью PHP.
Я пытался использовать функцию php mcrypt_decrypt:

string mcrypt_decrypt ( string $cipher , string $key , string $data , string $mode [, string $iv ] )

Но я не смог расшифровать сообщение, так как две функции имеют разные аргументы.

Так есть ли у кого-нибудь предложения относительно того, как расшифровать сообщение с помощью PHP?

-2

Решение

Следующая строка не имеет смысла, кажется, «назад».

var encodedKey : Bytes = Encoding.toBase64(new Bytes(key, "UTF8"));

Предполагая, что ключ был закодирован в Base64 (что разумно), можно было бы декодировать его в байтовый массив и Encoding.toBase64 кажется неверным. Но это квест, так как язык неизвестен, спросите клиента, что это за язык.

Затем кажется, что сообщение было зашифровано с заполнением PKCS # 5, и mcrypt не поддерживает это. Есть несколько решений: 1. Удалите отступы в своем коде PHP. 2. Используйте лучшую библиотеку, которая поддерживает заполнение PKCS # 5, такую ​​как разрядить.

Ценный salt вероятно, IV (Вектор инициализации) плохо назван.

0

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

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

По вопросам рекламы [email protected]