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