尝试解密PHP中从U2子例程发送的数据

时间:2018-08-28 05:46:28

标签: php encryption u2

我正在从U2系统发送加密的测试数据,以查看是否可以处理和利用它来提高安全性。

在U2中生成加密测试数据的SUBROUTINE是:

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=
    )

我在使用openssl_decrypt的PHP中使用了相同的信息:

$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)

我尝试了$ options的不同组合,并尝试对自己的相同数据进行加密,结果却有所不同。

我必须等待24小时才能获取具有任何更改的新文件,所以我想掩盖尽可能多的问题。

我已经阅读了文档,并认为可能存在以下问题:

  1. ACTION = 5,我只能从U2文档中找到4个可能的选项-1-加密,2-加密,Base64编码,3-解密,4-Base64解码,然后解密-是否如此简单? ?希望如此,但想解决其他可能的问题
  2. $ encda​​ta-我尝试使用OPENSSL_RAW_DATA和0(由于ACTION = 5既不是Encrypt也不是Encrypt&base64编码)而无法分辨
  3. $ encryptionMethod-我认为rc2-cbc在服务器上的PHP中不是有效的选项,但不能明确地说-我建议将其更改为AES256
  4. $ encryptionKey-可以是8个字符的字符串吗?是否需要特定的长度,是否需要二进制格式? (文档的信息有冲突)
  5. $ iv-与上面相同-是8个字符,并且不是二进制数吗?

在我将其发送过夜更新之前的任何其他见解将不胜感激。

PHP Fiddle测试:http://phpfiddle.org/main/code/ixax-umq3

0 个答案:

没有答案