来自UNIVERSE / U2 / PICK的数据加密

时间:2019-01-14 01:45:36

标签: universe u2 pick

我正在从UNIVERSE系统中提取一些数据,并希望对其进行加密以通过电子邮件进行传输。

我不是UNIVERSE专家,所以我使用从互联网上发现的点点滴滴,看起来“好像”正在运行,但我似乎无法解密数据。

以下是我根据网络上的代码使用的脚本:

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

以下是我通过此脚本处理过的一些数据字符串以及结果字符串:

输入05KI 输出iaYoHzxYlmM=

输入05FOAA 输出e0XB/jyE9ZM=

当我尝试使用在线解密器对结果输出进行解码和解密时,仍然没有任何结果:https://www.tools4noobs.com/online_tools/decrypt/

我认为这可能是字符编码问题,或者加密无法正常工作,但我不知道如何解决-我们已经进行了数周的研究,无法获得任何可解密的数据。

所有设置和字段均基于以下设置:https://www.dropbox.com/s/ban1zntdy0q27z3/Encrypt%20Function.pdf?dl=0

1 个答案:

答案 0 :(得分:1)

如果我使用相同的参数将您代码中的以base-64加密的字符串返回到Unidata DECRYPYT函数中,则可以解密。

我怀疑钥匙正在发生有趣的事情。该页面提到了类似的内容:https://u2devzone.rocketsoftware.com/accelerate/articles/data-encryption/data-encryption.html“生成合适的密钥是与加密相关的棘手问题之一。密钥应以随机二进制字符串的形式生成,显然使它们难以记住。因此,它可能更常见供应用程序向ENCRYPT函数提供密码短语并让该函数在内部生成实际的加密密钥。”

从图片中删除Universe ENCRYPT函数的一个选项是直接使用openSSL。看起来ENCRYPT / DECRYPT函数只是openSSL库的薄包装,因此您可以执行该操作以获取结果。我用于验证的php页面出现问题,但是如果我将base-64加密的字符串提供给另一台机器上的openSSL解密命令,则可以解密。

MYKEY="A long secret key"
DATASTRING="data to be encrypted data here"
EXECUTE '!echo "':DATASTRING:'"| openssl enc -base64 -e -rc2-cbc -nosalt -k "':MYKEY:'"' CAPTURING RESULT