【问题标题】:Data Encryption from UNIVERSE/U2/PICK来自 UNIVERSE/U2/PICK 的数据加密
【发布时间】:2019-01-14 01:45:36
【问题描述】:

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

【问题讨论】:

  • 这里没有对问题的技术解释。我建议发布你的 PHP 脚本和“任何东西”。你得到一个空白字符串吗?还是里面有垃圾的字符串?
  • “PHP 脚本”在文本中的 URL 中:tools4noobs.com/online_tools/decrypt
  • 当我使用与网站相关的加密工具进行加密时,我得到了不同的结果,所以我猜你的 Universe 加密算法不起作用。对于 05KI,我得到了以 Ktx 开头的东西。您发布的输出似乎是 Base64 编码的。
  • 如果你的 Universe 函数有 9 个或 10 个输入参数,你可能会发现对其中一个参数稍加调整即可解决问题。如果可能的话,我当然会推荐在 outside 宇宙中进行这项活动,前提是可以先将未加密的数据提取到磁盘。
  • 它是 base64 编码的 - 见: ACTION=5 ; * Base64 加密后编码。由于多种原因,在宇宙之外做这件事基本上是不可能实现的

标签: universe u2 pick


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-12
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多