在ABAP中使用二进制数据

时间:2015-06-24 07:10:22

标签: performance cryptography abap

我试图在ABAP中实现一些加密功能,而且我对二进制字符串的低性能操作感到困惑。

例如,我有一个X(不是XString)字符串,我想在循环中逐字节读取它。我说:

DO n TIMES.
  b = data+offset(1).
...

这有效,但读取速度约为1.5 MB / s。包括逐位加法,循环移位和模块化加法在内的另一项操作也很慢。

结果,我在ABAP中获得了大约600 KB / s的散列速度,相比之下,C / C ++中的散列速度大约为100 MB / s。

我怀疑ABAP适合处理二进制数据。也许有另一种惯用的方法来处理二进制数据;或者除了将加密功能提取到C#或Java服务中之外别无他法?

2 个答案:

答案 0 :(得分:1)

正如所建议的那样,ABAP不一定是实现系统类型功能的最佳方式,不仅仅是出于性能原因,而且因为在ABAP中处理某些数据类型有时会非常笨拙。

也许你可以在C中实现你的加密函数,然后通过RFC从ABAP接口,你的C应用程序充当RFC服务器,你通过RFC调用从ABAP调用它。您可以找到有关安装NetWeaver RFC SDK here以及编写RFC服务器here的更多信息。

答案 1 :(得分:0)

我会查看功能组SECH中的功能模块。

它具有MD5的功能模块和计算哈希值。

您可以分享一下您的用例或需要高性能二进制操作吗?