`

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;  

分享到:
评论

相关推荐

    Oracle9i用户加密算法

    ### Oracle9i用户加密算法详解 #### 一、概述 在现代信息技术中,数据安全尤为重要。Oracle数据库系统作为全球领先的关系型数据库管理系统之一,在数据安全方面提供了多种强大的工具和技术。其中,用户加密算法是...

    Oracle定义DES加密解密及MD5加密函数示例

    首先,文本被转换为RAW类型,然后用密钥进行加密,最后将加密后的RAW数据转换为十六进制字符串返回。解密函数`decrypt_des`则相反,它接收加密后的文本和密钥,解密后去除末尾的填充字符并返回原始文本。 2. **MD5...

    oracle数据库中RSA算法的应用.pdf

    根据RSA加密算法的原理,编写相应的解密算法,对Oracle数据库中加密的字段进行解密处理,最后将解密后的二进制数据还原为原始的可读varchar数据。在这个过程中,Oracle数据库不仅提供了数据转化和加密的功能,还允许...

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

    Java版的AES(Advanced Encryption Standard)加密算法是一种广泛使用的对称加密技术,它在信息安全领域中扮演着重要的角色。AES提供了高效且安全的数据加密,适用于保护敏感数据,如用户密码、个人信息等。在这个...

    图片与Base64加密码字符串相互转换工具

    在加密过程中,该工具可能采用了某种加密算法对Base64编码后的字符串进行加密,增加了一层额外的安全防护。 【描述解析】 "图片与Base64加密码字符串相互转换工具 带源码" 意味着提供给用户的不仅仅是可执行的应用...

    oracle加密解密

    ### Oracle 加密与解密知识点解析 #### 一、Oracle 加密解密概述 ...在选择合适的加密算法时,应根据实际需求以及 Oracle 版本的不同来进行选择。同时,还需要注意密钥管理的安全性和有效性,以确保数据的安全性。

    oracle10g加密解密[归类].pdf

    `ENCRYPT` 函数使用 `UTL_I18N.STRING_TO_RAW` 将输入的字符串转换为 RAW 类型,然后使用 `DBMS_CRYPTO.ENCRYPT` 进行加密。而 `DECRYPT` 函数则使用 `DBMS_CRYPTO.DECRYPT` 对 RAW 类型的数据进行解密,并通过 `UTL...

    oracle 存储过程的加密

    这个函数允许你将已存在的 PL/SQL 代码加密成一个字符串,返回的字符串可以直接执行创建加密的存储过程。有三个重载版本,接受不同类型的输入参数,如单个 `VARCHAR2` 或数组。 - `dbms_ddl.create_wrapped` 此...

    Navicat密码加密解密

    1. 加密方式:Navicat使用的是AES(Advanced Encryption Standard)高级加密标准,这是一种对称加密算法,以其高效和安全性著称。具体实现可能结合了自定义的密钥生成和加盐(salt)过程,以增加破解的难度。 2. ...

    c++ 几百个加密算法源代码

    - 安全性考虑:在编写和使用加密算法时,必须遵循最佳实践,避免常见的安全漏洞,如padding oracle攻击、密钥管理不当等。同时,需要定期更新算法以抵御新出现的攻击手段。 在“00_几十个加密算法_C++”这个压缩包...

    解密JBoss和Weblogic数据源连接字符串和控制台密码 _ WooYun知识库1

    ### 解密JBoss和Weblogic数据源连接字符串和控制台密码 #### 0x00 背景 随着互联网技术的发展与应用的多样化,Java作为企业级开发的重要语言之一,其相关的应用框架如JBoss和WebLogic越来越受到广泛的应用。这类...

    最快的排序算法 javahash实现-Java-哈希算法-最快的实现,排序算法数据结构

    5. sphlib库的使用:sphlib库是一个开源的实现,提供了许多加密哈希函数的实现,实际上,Java版本比Sun/Oracle提供的标准JRE更快。 6. 性能测量数据:需要对哈希函数的性能进行实际测量,例如对L1缓存的影响可能会...

    图片BASE64加密保存到数据库Blob类型中(放入数据库,并取出生成图片)

    1. **BASE64编码**:BASE64是一种用于将二进制数据转换为ASCII字符串的编码方式。它通过将每3个8位字节的数据转换为4个6位的字符,以确保所有标准ASCII字符集的字符都能被表示。在图片处理中,BASE64编码常用来将...

    java加密解密程序

    在Java中实现加密解密,通常会使用`java.security`包下的类,如`Cipher`,它可以实现各种复杂的加密算法,如AES、RSA等。然而,凯撒加密法的实现相对简单,可以直接用字符串操作来完成。程序可能包括两个主要部分:...

    神州付最新秋招笔试试题.docx

    Java基础知识、多线程编程、GC机制、关系型数据库、加密算法、Java接口修饰符、回文字符串算法 一、单选题 1. constructor必须与class同名,但方法不能与class同名(C语言的特性,在Java中不适用)。在Java中,...

    spring中properties加密

    在Spring框架中,为了保护应用程序中的敏感信息,如数据库连接字符串、API密钥或任何其他配置属性,我们经常需要对这些属性进行加密。这确保了即使代码被泄露,这些关键信息也不会轻易落入他人之手。本文将深入探讨...

    Oracle数据加密方法分析

    例如,创建一个名为`test_md5`的包,包含一个名为`fn_getmd5`的函数,这个函数接收一个VARCHAR2类型的输入字符串,将其转换为大写后,调用`DBMS_OBFUSCATION_TOOLKIT.MD5`进行MD5加密,最后返回加密后的VARCHAR2类型...

    Oracle储存过程包加解密实现

    这个包包含了多种加密算法,如AES(高级加密标准)、DES(数据加密标准)和RC4等。例如,要对一个字符串进行AES加密,可以使用以下PL/SQL代码: ```sql DECLARE encrypted_data RAW(2000); key RAW(20) := ...

    基于RedHat+Oracle 11i +pro * C 的通讯录系统

    这可能涉及到Oracle的数据库连接字符串、环境变量设置、ODBC或OCI接口的使用等。 综上所述,构建这样一个通讯录系统不仅需要扎实的Linux操作系统基础,还要精通Oracle数据库管理和Pro*C编程,同时还需要具备良好的...

Global site tag (gtag.js) - Google Analytics