目前算MD5都用MD5_CALCULATE_HASH_FOR_CHAR和MD5_CALCULATE_HASH_FOR_RAW。在对字符串算md5的时候,使用前者比较多,不过如果字串中包含了中文的话,如果用其他语言解析(例如java)会造成md5值不一样。因为MD5_CALCULATE_HASH_FOR_CHAR在算HASH值之前先对字符进行了一次处理。
通过读代码可以知道其核心用到了函数CALCULATE_HASH_FOR_RAW,同理也有CALCULATE_HASH_FOR_CHAR。所以可以直接用这两个函数来计算md5。
例如:
CALL FUNCTION 'CALCULATE_HASH_FOR_CHAR'
EXPORTING
alg = 'MD5'
data = xml_string
IMPORTING
hash = hash
EXCEPTIONS
internal_error = 1
OTHERS = 2.
这样就可以计算出md5值了。