0
(解密)的一些列
- 如何在甲骨文11加密號碼 列做(也能夠解密回),使同一列存儲與(未加密的放在一起加密後的數字(基於一個布爾值保存在其他地方)?
我實際上做了這樣一個函數,如需要一個數字來產生一個加密號碼,它在Oracle 10中運行良好,但現在它不再適用於ORACLE 11:加密甲骨文
function crypt (key varchar2, n number) return number raw_input RAW(128); encrypted_raw RAW(2048); raw_key_ RAW(128) := UTL_RAW.CAST_TO_RAW(CONVERT(key,'AL32UTF8','US7ASCII')); begin raw_input_ := UTL_RAW.cast_from_number (n); encrypted_raw := dbms_crypto.Encrypt(src => raw_input_, typ =>DBMS_CRYPTO.DES3_CBC_PKCS5, KEY=>raw_key_); return UTL_RAW.cast_to_number(encrypted_raw); end;
它拋出這個錯誤沒有解釋:
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "SYS.UTL_RAW", line 388
...
謝謝
那是沒用的,爲什麼需要隱窩和在同一個函數解密,只是爲了獲得相同數量的?這個功能的目的是什麼?我想要一個加密函數來生成一個加密的數字來存儲和另一個獨立的解密函數,稍後將這個加密的數字存儲在一個數據庫和解密它,以便顯示給用戶 – MihaiS
就像我說的,你不清楚你是什麼試圖去做。如果你想加密一個數字(或字符串或其他),你會返回一個RAW,而不是一個數字。沒有「加密號碼」,不存在這樣的事情。如果你有點禮貌,我可能會花時間將上面的代碼分解成兩個單獨的函數(加密/解密),但它很簡單,我認爲即使你可以處理它。 – tbone
我更新了我的問題,使其更清晰,現在我想獲得一個**號碼**不是原始的... – MihaiS