Попытка расшифровать данные, отправленные из подпрограммы U2 в PHP

Мне отправляют зашифрованные тестовые данные из системы U2, чтобы посмотреть, могут ли они быть обработаны и использованы для повышения безопасности.

СУБРУТИНИЯ, генерирующая зашифрованные тестовые данные в U2:

RESULT=''
ALGORITHM="rc2-cbc"                     ; * 128 bit rc2 algorithm in CBC mode 
MYKEY="23232323" ; * HEX - Actual Key 
IV=   "12121212"               ; * HEX - Initialization Vector 


DATALOC=1                           ; * Data in String 
KEYLOC=1                            ; * Key in String 
ACTION=5                            ; * Base64 encode after encryption 
KEYACTION=1                         ; * KEY_ACTUAL_OPENSSL 
SALT=''                             ; * SALT not used 
RESULTLOC=1                         ; * Result in String RESULT 
OPSTRING = ''

RETURN.CODE=ENCRYPT(ALGORITHM,ACTION,DATASTRING,DATALOC,MYKEY,KEYLOC,KEYACTION,SALT,IV,OPSTRING,RESULTLOC)
RETURN.CODE = OPSTRING

Генерируемые и зашифрованные данные:

[RAWDATA] => Array
    (
        [196346] => 05FOAA
        [196347] => 05KI
        [196328] => 99FOZZ16S10
    )
[ENCRYPTED] => Array
    (
        [196346] => e0XB/jyE9ZM=
        [196347] => iaYoHzxYlmM=
        [196328] => BS/YmNtlzI95c9NLpl4JVHLJwI/MO3zJm6FKVqu2tcM=
    )

Я использую ту же информацию в PHP, используя openssl_decrypt:

$encdata = array_value;
$encryptionMethod = ALGORITHM; //"rc2-cbc"
$encryptionKey = MYKEY;//"23232323"
$options = 0;
$iv = IV; //"12121212"

$decryptedMessage = openssl_decrypt( $encdata, $encryptionMethod, $encryptionKey, $options, $iv ); 

Возвращаемое значение: bool(false)

Я пробовал разные комбинации параметров $ и сам пытался зашифровать одни и те же данные, и я получил разные результаты.

Мне нужно ждать 24 часа, чтобы получить новый файл с любыми изменениями, поэтому я хотел покрыть как можно больше проблем.

Я прочитал документацию и чувствую, что следующие проблемы могут потенциально быть:

  1. ДЕЙСТВИЕ =5, которое я могу найти только 4 возможных варианта из документов U2 - 1 - Шифровать, 2 - Шифровать, кодировать Base64, 3 - Расшифровать, 4 - Декодировать Base64, затем дешифровать - Это так просто, как это неправильно? Я надеюсь на это, но хочу охватить любые другие возможные проблемы
  2. $encdata - я попытался с OPENSSL_RAW_DATA и 0, что я не могу сказать, потому что ACTION=5, который не является ни Encrypt OR Encrypt & base64 encode
  3. $ encryptionMethod - я не думаю, что rc2-cbc является допустимой опцией в PHP на моем сервере, но не могу сказать категорически - я предложил изменить это на AES256
  4. $ encryptionKey - это нормально, чтобы быть строкой из 8 символов? Должна ли она быть определенной длины, и должна ли она быть в двоичном формате? (Документы имеют противоречивую информацию)
  5. $ iv - то же самое, что и выше - это 8 символов и не двоичный код?

Буду очень признателен за любые другие идеи, прежде чем я отправлю это для ночных обновлений.

PHP Fiddle с тестированием: http://phpfiddle.org/main/code/ixax-umq3

0 ответов

Другие вопросы по тегам