1

我正在从 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=

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

我认为这可能是字符编码问题,或者加密无法正常工作,但我不知道如何解决 - 我们已经为此工作了几个星期,无法获得任何可解密的数据......

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

4

1 回答 1

1

如果我将代码中的 base-64 加密字符串返回到具有相同参数的 Unidata DECRYPYT 函数,它就可以很好地解密。

我怀疑钥匙发生了一些有趣的事情。该页面提到了类似的内容:https://u2devzone.rocketsoftware.com/accelerate/articles/data-encryption/data-encryption.html “生成合适的密钥是与加密相关的棘手问题之一。密钥应生成为"

从图片中删除 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
于 2019-01-17T17:44:59.763 回答