1

javascript 版本和 plsql 代码不返回相同的输出。

Javascript代码:

var hash = CryptoJS.HmacSHA256(StringToSign,l_secret_key);
var hashutf8 = CryptoJS.enc.Utf8.parse(hash);
var hashInBase64 = CryptoJS.enc.Base64.stringify(hashutf8);

stringtosign =
POST 
d6acee532d731af58745efea44ba83a8
application/json 
unix_time 
/v2/user_auth_sign_in

l_secret_key = wBp1U6tFIw6Jzdy66v4mbRZB3P6Q6tjk

输出:ZDJkY2Y1YWNlOWU0MDY4MWZmmGZhMzQ2MjU0MGIzZTE0ODNjYjdkMjlhNjkxZDg5ZDg1N2Q3M2JjZDdiMDk1NA==

但是 PLSQL 中的类似代码返回不同的输出。

l_sig_mac :=
DBMS_CRYPTO.mac(UTL_I18N.string_to_raw(l_stringto_sign, 'AL32UTF8'), DBMS_CRYPTO.HMAC_SH256, UTL_I18N.string_to_raw(l_secret_key, 'AL32UTF8'));
l_base64_sig_mac := UTL_RAW.cast_to_varchar2(UTL_ENCODE.base64_encode(l_sig_mac));
DBMS_OUTPUT.put_line('MAC Signature (Base64-encoded): ' || l_base64_sig_mac);

输出:K3BObVJEcUVmNVNhV3NZN1ovQ2dIVGtZWU9rcTF2T0xaVGxzdFdkQ3lBZz0=

plsql 块中需要哪些更改以接收与 js 相同的输出?

谢谢

4

0 回答 0