ABAP 中文件的 MD5 哈希



我想在ABAP中生成文本文件的MD5哈希。我还没有找到任何标准解决方案来为非常大的文件生成它。函数模块CALCULATE_HASH_FOR_CHAR不符合我的要求,因为它将字符串作为输入参数。虽然它适用于较小的文件,但在例如 4 GB 文件的情况下,无法构造这么大的字符串。

有谁知道是否有一段标准的编码来做到这一点(我的谷歌努力没有给我带来任何东西),或者也许有人在 ABAP 中有一个 MD5 算法来计算文件的哈希?

看起来这个算法在ABAP中是不可能的,因为该语言不允许在计算过程中出现算术溢出。这也应该回答为什么到目前为止还没有在SAP系统中实现的问题。无论哪种方式,似乎都没有其他方法可以调用外部工具,遗憾的是,外部工具几乎不是独立于平台的。

编辑:好的!因此,在 René 和 Java 中快速 MD5 实现代码的大力帮助下,我在 ABAP 中创建了 MD5 算法的实现。此实现允许使用更多字节更新计算的哈希,当然这些字节可能来自不同的来源。

到目前为止,还没有方法可以获取文件,但无论如何,大部分工作已经完成。

代码中包含一些简单的 ABAP 单元测试,其中还记录了如何使用它。

也许您可以在几兆字节的数据块中读取文件,并使用建议的功能创建那些的哈希列表。然后使用生成的哈希列表创建单个顶部哈希。

SDN通常是寻找ABAP相关解决方案的一个非常好的起点。我能够找到这篇文章:http://scn.sap.com/thread/1483479

作者建议:

  • .txt文件作为 BIN 上传。
  • 使用函数MD5_CALCULATE_HASH_FOR_RAW计算哈希代码

您是否能够以二进制格式获取文件并使用MD5_CALCULATE_HASH_FOR_RAW

编辑:这篇文章甚至使用CALCULATE_HASH_FOR_RAW有更详细的答案:http://scn.sap.com/thread/1298723

引用Shivanand Kalagi的回答:

STR_LEN = XSTRLEN( DATA ).
CALL FUNCTION 'CALCULATE_HASH_FOR_RAW'
  EXPORTING
    ALG            = 'MD5'
    DATA           = DATA
    LENGTH         = STR_LEN
  IMPORTING
    HASH           = L_MD5_HASH.

相关内容

  • 没有找到相关文章

最新更新