`

oracle 字符串加密算法

 
阅读更多

1、方法一 MD5加密

Java代码  收藏代码
  1. create or replace function fn_md5(input_string VARCHAR2) return varchar2  
  2. IS  
  3. raw_input RAW(128) := UTL_RAW.CAST_TO_RAW(input_string);  
  4. decrypted_raw RAW(2048);  
  5. error_in_input_buffer_length EXCEPTION;  
  6. BEGIN  
  7. sys.dbms_obfuscation_toolkit.MD5(input => raw_input,checksum => decrypted_raw);  
  8. return rawtohex(decrypted_raw);  
  9. END;  

 

2、方法二 3des算法

Java代码  收藏代码
  1. create or replace package PG_ENCRYPT_DECRYPT  
  2. is  
  3. iKey varchar2(8):='Oracle9i';  
  4. function GEN_RAW_KEY ( iKey in varchar2) return raw;  
  5. function DECRYPT_3KEY_MODE(iValue in raw,iMode in pls_integer)return varchar2;  
  6. function ENCRYPT_3KEY_MODE(iValue in varchar2,iMode in pls_integer)return raw;  
  7. function FormatStr(iValue in varchar2)return varchar2;  
  8. function FormatStr2(iValue in varchar2)return varchar2;  
  9. end;  

 

 

Java代码  收藏代码
  1. create or replace package body PG_ENCRYPT_DECRYPT  
  2. is  
  3. function GEN_RAW_KEY ( iKey in varchar2)  
  4. return raw  
  5. as  
  6. rawkey raw(240) := '';  
  7. begin  
  8. for i in 1..length(iKey) loop  
  9. rawkey := rawkey || hextoraw(to_char(ascii(substr(iKey, i, 1))));  
  10. end loop;  
  11. return rawkey;  
  12. end GEN_RAW_KEY;  
  13. /* Creating function DECRYPT_3KEY_MODE*/  
  14. FUNCTION DECRYPT_3KEY_MODE ( iValue in raw, iMode in pls_integer)return varchar2  
  15. as  
  16. vDecrypted varchar2(4000);  
  17. rawkey raw(240) := '';  
  18. begin  
  19. rawkey := GEN_RAW_KEY(iKey);-- decrypt input string  
  20. vDecrypted := dbms_obfuscation_toolkit.des3decrypt (UTL_RAW.CAST_TO_VARCHAR2(iValue), key_string => rawkey, which => iMode);  
  21. return FormatStr2(vDecrypted);  
  22. end DECRYPT_3KEY_MODE;  
  23. /*Creating function ENCRYPT_3KEY_MODE*/  
  24. FUNCTION ENCRYPT_3KEY_MODE ( iValue in varchar2, iMode in pls_integer)return raw  
  25. as  
  26. vEncrypted varchar2(4000);  
  27. vEncryptedRaw Raw(2048);  
  28. rawkey raw(240) := '';  
  29. begin  
  30. rawkey := GEN_RAW_KEY(iKey);-- encrypt input string  
  31. vEncrypted := dbms_obfuscation_toolkit.des3encrypt (FormatStr(iValue), key_string => rawkey, which => iMode);  
  32. -- convert to raw as out  
  33. vEncryptedRaw := UTL_RAW.CAST_TO_RAW(vEncrypted);  
  34. return vEncryptedRaw;  
  35. end ENCRYPT_3KEY_MODE;  
  36.   
  37. function FormatStr(iValue in varchar2)return varchar2  
  38. as  
  39. begin  
  40. declare  
  41. i number;  
  42. j number;  
  43. m_value varchar2(4000);  
  44. begin  
  45. m_value:=iValue;  
  46. i:=(length(m_value) mod 8);  
  47. if i<>0 then  
  48. j:=1;  
  49. for j in 1..(8-i) loop  
  50. m_value:=m_value || '#';  
  51. end loop;  
  52. end if;  
  53. return m_value;  
  54. end;  
  55. end FormatStr;  
  56.   
  57. function FormatStr2(iValue in varchar2)return varchar2  
  58. as  
  59. begin  
  60. declare  
  61. i number;  
  62. j number;  
  63. m_value varchar2(4000);  
  64. begin  
  65. m_value:=iValue;  
  66. i:=instr(iValue,'#',1,1);  
  67. if i>0 then  
  68. m_value:=substr(m_value,1,i-1);  
  69. end if;  
  70. return m_value;  
  71. end;  
  72. end FormatStr2;  
  73. end PG_ENCRYPT_DECRYPT;  

分享到:
评论

相关推荐

    Java版AES加密算法,亲测可用

    Java版AES加密算法,亲测可用

    生成不重复字串

    生成由字母、数字组合的不重复字串(目前小于8位),此算法也适用于数字串加密及压缩.

    Oracle9i的init.ora参数中文说明

    值范围: Oracle8i National Language Support Guide 中指定的任何有效的10 字节字符串。 默认值: 从 NLS_TERRITORY 中获得 nls_date_language: 说明: 指定拼写日期名, 月名和日期缩写词 (AM, PM, AD, BC) 的语言。...

    java AES加解密方式

    AESServiceECB.jar 实现了AES的ECB模式下的算法,允许对字符串、字节、文件的加密。 提示:Oracle在其官方网站上提供了无政策限制权限文件(Unlimited Strength Jurisdiction Policy Files),我们只需要将其部署在...

    IntelliLock.v2.1.0(破解版)

    2、字符串加密 3、保护代码不被篡改 4、禁用 ILDASM 5、加强名称移除保护 6、IL 代码加密 7、控制流模糊 8、注入无效的元数据 支持 64bit 程序集 无需加入任何代码即可锁定/解锁/保护您的程序集 支持命令行 直观的...

    php5.5 zip 32位

    e修饰符是指示preg_replace函数用来评估替换字符串作为PHP代码,而不只是仅仅做一个简单的字符串替换。不出所料,这种行为会源源不断的出现安全问题。这就是为什么在PHP5.5 中使用这个修饰符将抛出一个弃用警告。...

    Intellilock_v1.7绿色正式版

    2、字符串加密 3、保护代码不被篡改 4、禁用 ILDASM 5、加强名称移除保护 6、IL 代码加密 7、控制流模糊 8、注入无效的元数据 支持 64bit 程序集 无需加入任何代码即可锁定/解锁/保护您的程序集 支持命令行 直观的...

    C#编程经验技巧宝典

    88 &lt;br&gt;0136 如何进行文本加密与解密 88 &lt;br&gt;0137 如何区别0、空字符串、Null、Empty和Nothing 89 &lt;br&gt;0138 从字符串中分离文件路径、文件名及扩展名 89 &lt;br&gt;0139 如何批量替换某一类字符串 89...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part1

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    PHP开发实战1200例(第1卷).(清华出版.潘凯华.刘中华).part2

    实例112 解决用substr()函数对中文字符串截取时出现乱码的问题 143 实例113 字符串与HTML标记相互转换 144 实例114 运用PHP 5.0新型字符串输出XML数据 145 实例115 判断字符串中是否存在指定子串 146 2.9 正则表达式...

    php网络开发完全手册

    7.3.1 字符串重复操作——str_repeat 104 7.3.2 字符串替换操作——str_replace 7.3.2 和str_ireplace 104 7.3.3 字符串分解操作——str_split 106 7.3.4 字符串单词数的计算函数—— 7.3.4 str_word_count 107 ...

    C#程序开发范例宝典(第2版).part13

    实例225 使用ROT13加密解密文件 314 6.7 其他 315 实例226 获取窗口文本 315 实例227 判断文件是否正在被使用 316 实例228 在程序中调用.HLP文件 317 实例229 C#中实现文件拖放 317 实例230 文件比较 318 ...

    JAVA面试题最全集

    编码转换,怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串。 9.Java中访问数据库的步骤,Statement和PreparedStatement之间的区别。 10.找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet...

    JAVA上百实例源码以及开源项目源代码

     Java非对称加密源程序代码实例,本例中使用RSA加密技术,定义加密算法可用 DES,DESede,Blowfish等。  设定字符串为“张三,你好,我是李四”  产生张三的密钥对(keyPairZhang)  张三生成公钥(publicKeyZhang...

Global site tag (gtag.js) - Google Analytics