点击此处---> 群内免费提供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)
好吧,我在类CL_ABAP_ZIP的方法CRC32中发现了问题
由于它返回的INT非常笨拙,因此我尝试复制并粘贴如果IF为false时实现的选项" manual"。
然后... KABOOM! 我发现了一个讨厌的小错误:将HEX移至INT。
在代码中复制了手动部分,我发现CRC的HEX值正确(HURRAY!),但将其移至CRC32,这是因为有些完全不同, 但等于IF的"系统方法"的结果
我应该检查有关此的OSS注释...
感谢 Tomas Buryanek 他的"十六进制值"在我疲惫的大脑中敲响了钟声!
-1203672788(十进制)= 2C6941B8(十六进制)-检查调试器屏幕截图。
2C6941B8 = B841692C的反向字节
2C 69 41 B8
我没有使用crc32的经验,但是我在字符串" tomas"上尝试了此方法:
它返回了十六进制" 5474D05C"中的整数十进制值" 1557165140"。
一个PHP Web服务返回了相同的十进制数字。 但是大多数Web CRC32服务都返回" 5cd07454"。 哪些是反向字节(我猜这是CRC问题中的一件事)。
希望它会帮助...
我不敢为您加标签,Tomas! :D
很高兴您跳入!
我也尝试过cl_abap_zip,我得到了第4个结果...现在...为什么??!?!
我担心CL_ABAP_ZIP可能会导致另一个问题,因为我需要将字符串解码为十六进制,这可能会导致某种不同的结果?
一周热门 更多>