点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
要遵循匈牙利有关电子发票(NAV系统)的新法律,我正在为数据的编码和解码而奋斗……我正在为此而努力,失败。
场景
每种通信和有效载荷都适用于XML结构。
使用提供的登录名,我向API索要令牌,然后以base64Binary的身份得到答案,并使用AES-128 ECB算法加密。
我应该解密令牌,并在数据通信中将其发回给构面定义的字段
我到目前为止所做的事情
- 我收到令牌(例如上次呼叫的示例:mrlWpOOkvG8uuFL05v/VPyCXxr86OoS/dPu5PFsz + mWB29p/kn1MxPsTqZ9MmNcBpEfI8RU3lzbxUu7t + U0tjg ==)
- 将我的令牌转换为 XSTRING 以便我们可以对其进行解密
类型:t_t开头, 箱型char100 t_t结束。 数据:带有默认密钥的t_bin t_t类型表, r_bin类型t_t, 镜头类型i。 r_bin-bin = i_data。 "我的令牌 将r_bin附加到t_bin。 len = strlen(r_bin-bin)。 " 88 通话功能'SCMS_BINARY_TO_XSTRING' 出口 input_length = len 输入 缓冲区= e_hex 桌子 binary_tab = t_bin 例外情况 失败= 1 其他= 2。
- 要解密令牌,我得到了一个字符串型密钥,所以我也将其转换为XSTRING
FUNCTION'SCMS_STRING_TO_XSTRING' 出口 text = c_key"字符串键 输入 缓冲区= xkey 例外情况 失败= 1 其他= 2。
- 使用我的2个xstring值(令牌和密钥),我依赖于
https://github.com/Sumu-Ning/AES 解密XSTRING令牌(我在此处 http://extranet.cryptomathic.com/aescalc/检查了结果 索引,并且相同,所以我猜我的令牌已解密)
mode = zcl_aes_utility => mc_encryption_mode_ecb.zcl_aes_utility => decrypt_xstring(EXPORTING i_key = xkey i_data = i_token i_initialization_vector = iv"初始i_encryption_mode =模式IMPORTING e_data = resultx)。
- 最后,我再次将解密的令牌重新转换为Base64
呼叫功能'SCMS_BASE64_ENCODE' 出口 输入= x_s input_length = len"来自解密的XSTRING/2 输入 输出= o_c 例外情况 output_too_small = 1 其他= 2。 如果sy-subrc <> 0。 *在这里实施适当的错误处理 万一。 令牌= o_c。
- 这会导致一个令牌,就像第一个令牌(ryyXiG2iEn + Y/NSeAyY4GAhlhl3i6o9PaC0s3UhnPPGKjeRqmODXo6vXGW1TUoswfTn5rVLNm2Lgah6zmSDY7Cg ==)一样长 。
我还尝试使用我在SCN和网上找到的建议解决方案将我的XSTRING转换为String而不是Base64(即 http://www.samplecodeabap.com/convert-xstring-string/),但我放弃了此解决方案,因为它最终会生成一堆乱码而不是unicode。
我需要什么?
我确定我正在弄乱获取和解密令牌的整个过程,也许是在弄乱字符串大小 ,但如果有人可以打我的头,并指向正确的方向,我真的很感激。
非常感谢!
你好西蒙妮,
从一开始,您就提到收到的令牌(mrlWpOOkvG8uuFL05v/VPyCXxr86OoS/dPu5PFsz + mWB29p/kn1MxPsTqZ9MmNcBpEfI8RU3lzbxUu7t + U0tjg ==)。
但是之后,您尝试使用SCMS_BINARY_TO_XSTRING将其转换为xstring。
我认为这是问题所在。
因为令牌看起来像BASE64字符串。 因此,您需要将此BASE64字符串解码为xstring。 然后您可以解密此xstring,所以没有...其余步骤似乎还可以。
提示:我喜欢使用CL_HTTP_UTILITY进行BASE64的解码/编码:-)有4种方法(2个用于string,2个用于xstring) ...
很高兴您可以使用它:-)
嗨西蒙妮,
类似的开发是由某人较早进行的,并且在解密方面存在一些问题。 AES库的问题之一对此进行了讨论。 请在网址中查看问题
https://github.com/Sumu-Ning/AES/issues/15
问题在那里有所不同,但是,它可能使您知道如何在此处理。 此外,这里使用的代码是整个库的改编版本,而不是库本身。
希望有帮助。
嗨Ravi,
这不是解密问题:正如我所说,我使用了一些在线工具,并且得到了与全班相同的结果。
所以我以某种方式确信这不是重点:\
一周热门 更多>