我正在使用 Oracle 数据库 11g Express Edition 在 PL/SQL 中进行 REST API 授权。我有 api_key、nonce 和签名作为每个过程的 IN 变量。
签名是一个 HMAC-SHA256 编码的字符串,其中包含存储在我的数据库中的 api_secret。我想检查签名是否与数据库中的 api_secret 匹配。
我的问题是如何使用 pl/sql 对 HMAC-SHA256 中的字符串进行编码?
最佳答案
CruiserX 提供针对 Oracle 10g、11g 的 SHA256 PL/SQL 实现。 从here下载软件包.
在sqlplus中编译包和包体。
像这样调用函数:
SQL> select sha256.encrypt('测试消息') from Dual;
--输出:3f0a377ba0a4a460ecb616f6507ce0d8cfa3e704025d4fda3ed0c5ca05468728
SQL> 从对偶中选择 sha256.encrypt_raw('74657374206D657373616765');
--输出:3f0a377ba0a4a460ecb616f6507ce0d8cfa3e704025d4fda3ed0c5ca05468728
关于oracle - 如何使用 pl/sql 对 HMAC-SHA256 中的字符串进行编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36692999/