我正在尝试在公共服务器 PUB400 上使用 COBOL ILE 在 IBM I 上运行例程 CSNBOWH。为了进行呼叫,我使用了来自互联网/手册的各种定义。这是我最后用的一个:
01 HASHING-TEXT.
03 WK-RETURN-CODE PIC S9(9) COMP-5 VALUE ZERO.
03 REASON-CODE PIC S9(9) COMP-5 VALUE ZERO.
03 EXIT-DATA-LENGTH PIC S9(9) COMP-5 VALUE 4.
03 EXIT-DATA PIC X(4) VALUE SPACE.
03 RULE-ARRAY-COUNT PIC S9(9) COMP-5 VALUE 1.
03 RULE-ARRAY PIC X(8) VALUE 'MD5'.
03 TEXT-LENGTH PIC S9(9) COMP-5 VALUE 64.
03 TEXT-MESSAGE PIC X(64) VALUE SPACE.
03 CHAINING-VECTOR-LENGTH PIC S9(9) COMP-5 VALUE 128.
03 CHAINING-VECTOR PIC X(128) VALUE SPACE.
03 HASH-LENGTH PIC S9(9) COMP-5 VALUE 16.
03 HASH PIC X(16).
CALL 'CSNBOWH' USING WK-RETURN-CODE
REASON-CODE
EXIT-DATA-LENGTH
EXIT-DATA
RULE-ARRAY-COUNT
RULE-ARRAY
TEXT-LENGTH
TEXT-MESSAGE
CHAINING-VECTOR-LENGTH
CHAINING-VECTOR
HASH-LENGTH
HASH.
但是我总是收到消息 MCH3401“‘MCH3401’的消息文本如下:‘无法解析为 对象 CSNBOWH。类型和子类型 X'0201' 权限 X'0000'.'"
您认为我无权访问此例程? 我也尝试使用例程 CSNBOWH1 CSNEOWH 和 CSNEOWH1 得到相同的结果。
我阅读了IBM平台上的各种手册,我想我可以使用CSNBOWH例程来进行散列。说明书如下: https://www.ibm.com/docs/en/zos/3.1.0?topic=vdiam-one-way-hash-generate-csnbowh-csnbowh1-csneowh-csneowh1 IBM i 7.3 安全密码学
但是,我不确定我的方向是否正确。如果您知道 COBOL 中获取 MD5 的其他方法,那就太好了。
谢谢你
您需要在系统上安装以下软件:
5770-SS1 5050 – IBM i Option 35, CCA Cryptographic Service Provider
默认不安装。
WRKOBJ *ALL/CSNBOWH *PGM
会告诉您,或者 QSYSINC/H MBR(CSUCINCL) 是否存在。
很好的参考(尽管是 C 代码)IBM i 7.3 安全密码学