
加密程序数据库触发子scjmmm REM 对GHXXB制立数据库触发子(当INSERT OR UPDATE GHXXB时触发) drop trigger scjmmm; create or replace trigger scjmmm before insert or update of mm On ghxxb For each Row Begin :new mm:=ENCRYPT(:new mm :NEW GH TO_CHAR(SYSDATE SS )); End; / 密码的加密程序ENCRYPT Create or Replace Function ENCRYPT (Inpass In Varchar IN_GH In Varchar IN_SS In Varchar ) Return Varchar Is bcs varchar ( ); bcs number; cs number; jg number; m_gh VARCHAR ( ); m_mm VARCHAR ( ); Begin m_gh:=IN_GH; m_mm:=INPASS; cs:=TO_NUMBER(IN_SS); If cs<=1 then cs:=77 ;end if; bcs:=substr(to_char(ascii(substr(m_gh,1,1))),1,2); If bcs<'1' then bcs:='7' ;end if; m_gh:=substr(m_gh,2); Loop EXIT WHEN nvl(length(m_gh),0)=0 ; bcs:=bcs||substr(to_char(ascii(substr(m_gh,1,1))),-1,1); m_gh:=substr(m_gh,2); End loop; Loop EXIT WHEN nvl(length(m_mm),0)=0 ; bcs:=bcs||substr(to_char(ascii(substr(m_mm,1,1))),-1,1); m_mm:=substr(m_mm,2); End loop; bcs1:=to_number(bcs); jg:=csbcs1; Loop EXIT WHEN length(to_char(jg))>13; jg:=jgcs ; End loop; RETURN(IN_SS||substr(to_char(jg),1,14)); End; / grant execute on ENCRYPT to public; lishixinzhi/Article/program/Oracle/201311/11194
oracle自带的加密和解密方法如果是同一个DESDECRYPT,那么肯定会在参数里面说明区别和用法,我对此方法不了解也就是说对这个方法的参数使用不了解,但用法应该类似如下:
insert into mytable(FieldA,FieldB) values('AAAAAA',自带方法('BBBBB',其他参数))
---对插入B列的内容加密
select FieldA,自带方法(FieldB,其他参数) as FieldB from mytable
---对存放在B列的内容解密
安华金和数据库加密的技术方案主要有三种种:包括前置代理、应用加密和后置代理。前置代理的技术思路就是在数据库之前增加一道安全代理服务,对数据库访问的用户都必须经过该安全代理服务,在此服务中实现如数据加解密、存取控制等安全策略;然后安全代理服务通过数据库的访问接口实现数据在O中的最终存储。
安华金和数据库加密 应用层加密方案的主要技术原理是:
(1) 应用系统通过加密API(JDBC,ODBC,C API等)对敏感数据进行加密,将加密数据存储到Oracle数据库中;
(2)
在进行数据检索时,将密文数据取回到客户端,再进行解密;
(3) 应用系统将自行管理密钥。
后置代理的基本技术路线是使用“视图”+“触发器”+“扩展索引”+“外部调用”的方式实现数据加密,同时保证应用完全透明。
该方案的核心思想是充分利用数据库自身应用定制扩展能力,分别使用其触发器扩展能力、索引扩展能力、自定义函数扩展能力以及视图等技术来满足数据存储加密,加密后数据检索,对应用无缝透明等最主要需求。后置代理方案的核心目标包括:A、实现在数据库中敏感数据的按列加密;B、对应用提供透明的加密数据访问;C、为加密数据提供高效的索引访问;D、实现独立于数据库的权限控制;E、调用国产的加密算法。
目前在国内安华金和的数据库加密产品是最成熟的,已经广泛应用于运营商、中央部委等大型系统上。
加密的字符串一般是在 程序当中生产的比如现在流行的16位 md5加密码。一般都是在程序当中对用户输入的 真实密码。进行一个MD5加密,会生产一个加密码。然后按需要截取其中16位。在把这16位MD5加密码 字符串 存取在数据库当中。在用户登入的时候。用户会输入真的密码在进行加密截取。然后和数据库当中的进行比较。如果成功则true反之为fasle
以上就是关于ORACLE 应用经验(4)-加密程序全部的内容,包括:ORACLE 应用经验(4)-加密程序、有这样一个需求,在.net中需要将oracle数据库里的一张表加密,在取出来时直接解密,怎么实现、数据库怎么加密等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)