在github上下載的Oracle中實作SHA256加密的代碼,
在對數字和英文字母加密時是正確的,但是加密中文漢字時,會出現結果錯誤
找了一下午原因了,也不知道為什么
求助各位
以下是呼叫的主函式:
CREATE OR REPLACE PACKAGE BODY SHA256 IS
……
FUNCTION ENCRYPT(x IN VARCHAR2) RETURN VARCHAR2 AS
ctx TR_CTX;
res TA_NUMBER;
BEGIN
RETURN ENCRYPT_RAW(utl_raw.cast_to_raw(x));
END;
FUNCTION ENCRYPT_RAW(x IN RAW) RETURN VARCHAR2 AS
ctx TR_CTX;
res TA_NUMBER;
BEGIN
sha256_init_ctx (ctx);
sha256_process_bytes(x, utl_raw.length(x), ctx);
sha256_finish_ctx(ctx, res);
RETURN
to_char(res(0),'FM0xxxxxxx') ||
to_char(res(1),'FM0xxxxxxx') ||
to_char(res(2),'FM0xxxxxxx') ||
to_char(res(3),'FM0xxxxxxx') ||
to_char(res(4),'FM0xxxxxxx') ||
to_char(res(5),'FM0xxxxxxx') ||
to_char(res(6),'FM0xxxxxxx') ||
to_char(res(7),'FM0xxxxxxx');
END;
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/14676.html
標籤:開發
上一篇:幫忙寫個觸發器并分析下速度
