计算编码的64字符串的CRC32-为什么会有2个不同的结果?

2020-09-15 05:34发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我需要...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我需要从普通字符串生成一个编码的64字符串,然后计算它的CRC32以通过Web服务发送信息。

有趣的是:我发现了一堆类和方法来计算它。.并且我得到了不同的结果!

例如,给定此Encoded64字符串

64.txt ,我得到2个不同的结果!

我得到了第三个结果!

为什么?

代码段
数据:crc类型引用到if_scv_crc32,
  val_satc类型cva_crc32,
  satc TYPE REF TO CL_SATC_CRC,
  val TYPE cva_crc32。
 创建对象饱和度。
 val_satc = satc-> get_crc32_for_text_sequence(i_invoice)。
  val = cl_scv_crc_services => create()-> create_crc32_for_string(i_invoice)-> get_value()。

(27.3 kB)
4条回答
落灬小鱼
2020-09-15 06:24 .采纳回答

好吧,我在类CL_ABAP_ZIP的方法CRC32中发现了问题

由于它返回的INT非常笨拙,因此我尝试复制并粘贴如果IF为false时实现的选项" manual"。

然后... KABOOM! 我发现了一个讨厌的小错误:将HEX移至INT。
在代码中复制了手动部分,我发现CRC的HEX值正确(HURRAY!),但将其移至CRC32,这是因为有些完全不同, 但等于IF的"系统方法"的结果

我应该检查有关此的OSS注释...

感谢 Tomas Buryanek 他的"十六进制值"在我疲惫的大脑中敲响了钟声!

一周热门 更多>