Oracle自定义函数,加密,解密函数

标签: Oracle 自定义函数 加密 解密
15人阅读 评论(0) 收藏 举报
分类:
加密函数:
create or replace function encrypt_des(p_text varchar2) return varchar2 is
begin
return sys.encrypt_function(p_text);
end;

CREATE OR REPLACE FUNCTION SYS.ENCRYPT_FUNCTION(
V_STR VARCHAR2) RETURN VARCHAR2 AS V_KEY_RAW RAW(9);
V_STR_RAW RAW(2000);
V_RETURN_STR VARCHAR2(2000);
V_TYPE PLS_INTEGER;
BEGIN
/*************************************************
加密函数 FUN_ENCRYPTION 
入参:
V_STR 输入明文字符串
V_KEY 输入密钥字符串,长度为9字节
返回值:
V_RETURN_STR 返回密文字符串,约定返回为 16进制密文字符串
 异常处理:
此函数不对任何异常做捕捉处理,请相应的程序模块对异常做捕捉处理。
加密方式:
密钥位数:AES192 DBMS_CRYPTO.ENCRYPT_AES192
连接方式:CBC DBMS_CRYPTO.CHAIN_CBC
填充方式:PKCS5 DBMS_CRYPTO.PAD_PKCS5
**************************************************/
V_KEY_RAW := UTL_I18N.STRING_TO_RAW('Jalone666', 'UTF8');
V_STR_RAW := UTL_I18N.STRING_TO_RAW(V_STR, 'UTF8');
-- 指定‘密钥算法’、‘工作模式’、‘填充方式’
V_TYPE := DBMS_CRYPTO.ENCRYPT_DES + DBMS_CRYPTO.CHAIN_ECB +
DBMS_CRYPTO.PAD_PKCS5;
V_STR_RAW := DBMS_CRYPTO.ENCRYPT(SRC => V_STR_RAW, TYP => V_TYPE,
KEY => V_KEY_RAW);
V_RETURN_STR := RAWTOHEX(V_STR_RAW);
RETURN V_RETURN_STR;
/* EXCEPTION
WHEN OTHERS THEN
RETURN SQLERRM||SQLCODE ; */
END;








解密函数:
create or replace function decrypt_des(p_text varchar2) return varchar2 is
begin
return sys.decrypt_function(p_text);
end;
CREATE OR REPLACE FUNCTION SYS.DECRYPT_FUNCTION(V_STR VARCHAR2 )
RETURN VARCHAR2 AS
V_KEY_RAW RAW(9);
V_STR_RAW RAW(2000);
V_RETURN_STR VARCHAR2(2000);
V_TYPE PLS_INTEGER;

BEGIN
/************************************************
解密函数 FUN_DECRYPTION 
入参:
V_STR 输入密文字符串,约定密文为16进制字符串
V_KEY 输入密钥字符串,长度为9字节
返回值:
V_RETURN_STR 返回明文字符串
异常处理:
此函数不对任何异常做捕捉处理,请相应的程序模块对异常做捕捉处理。

加密方式:
密钥位数:AES192 DBMS_CRYPTO.ENCRYPT_AES192
连接方式:CBC DBMS_CRYPTO.CHAIN_CBC
填充方式:PKCS5 DBMS_CRYPTO.PAD_PKCS5

***************************************************/
V_KEY_RAW := UTL_I18N.STRING_TO_RAW('Jalone666', 'UTF8');
V_STR_RAW := HEXTORAW(V_STR);
-- 指定‘密钥算法’、‘工作模式’、‘填充方式’
V_TYPE := DBMS_CRYPTO.ENCRYPT_DES + DBMS_CRYPTO.CHAIN_ECB +
DBMS_CRYPTO.PAD_PKCS5;
V_STR_RAW := DBMS_CRYPTO.DECRYPT(SRC => V_STR_RAW,
TYP => V_TYPE,
KEY => V_KEY_RAW);
V_RETURN_STR := UTL_I18N.RAW_TO_CHAR(V_STR_RAW, 'UTF8');
RETURN V_RETURN_STR;
/* EXCEPTION
WHEN OTHERS THEN
RETURN SQLERRM||SQLCODE ; */
END;



分割字符串:
create or replace function splitStr(var_str in string, var_split in string)
return strsplit_type is
var_out strsplit_type;
var_tmp varchar2(2000);
var_element varchar2(2000);
begin
var_tmp := var_str;
var_out := strsplit_type();

while instr(var_tmp, var_split) > 0 loop
var_element := substr(var_tmp, 1, instr(var_tmp, var_split) - 1);
var_tmp := substr(var_tmp,
instr(var_tmp, var_split) + length(var_split),
length(var_tmp));
var_out.extend(1);
var_out(var_out.count) := var_element;
end loop;
var_out.extend(1);
var_out(var_out.count) := var_tmp;
return var_out;
end splitStr;
查看评论

黑客加密与解密

-
  • 1970年01月01日 08:00

oracle 密码的加密和解密

加密函数 create or replace function  encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is...
  • ap674070877
  • ap674070877
  • 2016-09-27 10:26:33
  • 2378

密码函数

#include #include #include #define BACKSPACE 8char *get_password(const char *prompt){    static char...
  • LifeAndC
  • LifeAndC
  • 2005-11-21 19:36:00
  • 1413

ORACLE自动生成8位带数字和字母的随机密码

前段时间做给联通做了一个考评系统,是一个二级部门用于员工之间年度打分的。做完之后要求每个员工还自动生成一个密码,生成的密码谁也不知道,让局方去plsql上一点就成生,然后再打印出来 ,让每个经理发给员...
  • u010609345
  • u010609345
  • 2016-03-28 10:25:09
  • 322

通过Oracle函数产生随机密码

通过Oracle函数产生随机密码
  • byondocean
  • byondocean
  • 2011-07-05 11:56:28
  • 1474

Oracle 生成拼音码

CREATE OR REPLACE FUNCTION fgetpy (v_str VARCHAR2)      RETURN VARCHAR2   AS      v_strlen   INT;...
  • HJ850126
  • HJ850126
  • 2013-12-04 16:11:29
  • 3242

Oracle sql生成md5

1、建立函数 MD5_Digest   。 create or replace function MD5_Digest ( vin_string IN VARCHAR2 ) RETURN VAR...
  • luckytjx
  • luckytjx
  • 2017-09-26 09:12:34
  • 719

oracle 非常完整的总结

原文:http://blog.csdn.net/bff1022/article/details/17462435# 目录(?)[+] Ⅰ.oracle itcast 本文档对应程序在mye...
  • hello_zhou
  • hello_zhou
  • 2016-08-24 22:30:19
  • 5430

使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码

使用wrap和unwrap加密解密Oracle的PL/SQL对象(包,存储过程,函数等)代码   Oracle数据库系统自带的PL/SQL对象(包,存储过程,函数等)的代码绝大部分都是使用了wrap程...
  • Samdy_Chan
  • Samdy_Chan
  • 2016-01-31 20:05:29
  • 5743

Oracle、SQL Server下MD5+Base64密码加密实现

写在前面: MD5和Base64的函数实现并不是本文的重点,重点是在实现过程中遇到的字符集转换的麻烦   最近由于工作需要,要将BIEE与公司现有的ERP系统做集成,使用外部表的方式。 现有系...
  • lele5000
  • lele5000
  • 2011-08-20 15:25:41
  • 6379
    个人资料
    等级:
    访问量: 16
    积分: 20
    排名: 215万+
    文章存档