首页 > 编程知识 正文

aes加密算法为什么不能破解,aes文件解密

时间:2023-05-03 21:54:04 阅读:29206 作者:4878

ORACLE字段AES算法加密、解密(解决中文乱码问题) ) ) )。

2014年02月12日17:13:37华智互联阅读数: 9797

1 .解密函数入口

createorreplacefunctionf _ znmh _ smk _ crypt (p _ srcinvarchar 2,

P_TYPE IN NUMBER )

RETURN VARCHAR2 IS

结果varchar2(4000;

比根

/* * * * * * * * * * * * * * * * * *

信息加密函数F_ZNMH_SMK_CRYPT

登门拜访:

输入P_SRC明文字符串

P_TYPE处理类型,1、加密; 2、用于解密;

返回值:

RESULT承诺返回密文字符串并返回十六进制密文字符串

异常处理:

此函数不捕获异常。 请在相应的程序模块中捕获处理异常。

加密方式:

密钥位数: AES 192 DBMS _ crypto.encrypt _ AES 192

连接方式:CBC DBMS_CRYPTO.CHAIN_CBC

填充方式: pkcs5DBMS _ crypto.pad _ pkcs 5

默认密钥:

KEY ZNMH1234

* * * * * * * * * * * * * * * *

DECLARE

keyvarchar2(20;

比根

KEY :='ZNMH1234 ';

RESULT :='ERROR ENCRPT INFO ';

--P_TYPE为1时表示加密; 2的情况下,表示解码;

if(p_type=1) THEN

result :=encrypt _ function (p _ src,KEY );

elsif(p_type=2) THEN

result :=decrypt _ function (p _ src,KEY );

结束If;

执行

WHEN OTHERS THEN

DMS _ output.put _ line (sqlcode : (|| sqlcode );

DMS _ output.put _ line (sqlerrm : (|| sqlerrm );

返回(result;

结束;

返回(result;

END F_ZNMH_SMK_CRYPT;

2 .加密函数

createorreplacefunctionencrypt _ function (

V_STR VARCHAR2,v _ key varchar2(返回varchar2asv _ key _ raw raw (24;

v_str_rawraw(2000;

v_return_strvarchar2(2000;

V_TYPE PLS_INTEGER;

比根

/* * * * * * * * * * * * * * * * * *

加密函数FUN_ENCRYPTION

登门拜访:

输入V_STR明文字符串

输入V_KEY键字符串。 长度为24字节

返回值:

V_RETURN_STR承诺返回密文字符串并返回十六进制密文字符串

异常处理:

此函数不捕获异常。 请在相应的程序模块中捕获处理异常。

加密方式:

密钥位数: AES 192 DBMS _ crypto.encrypt _ AES 192

连接方式:CBC DBMS_CRYPTO.CHAIN_CBC

填充方式: pkcs5DBMS _ crypto.pad _ pkcs 5

* * * * * * * * * * * * * * * *

v _ key _ raw :=utl _ i18n.string _ to _ raw (v _ key,' ZHS16GBK ' );

v _ str _ raw :=utl _ i18n.string _ to _ raw (v _ str,' ZHS16GBK ' );

-指定“密钥算法”、“动作模式”、“填充方式”

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 3360=rawtohex (v _ str _ raw );

RETURN V_RETURN_STR;

/*执行

WHEN OTHERS THEN

返回sqlerrm|| sqlcode; */

结束;

3 .解码函数

(createorreplacefunctiondecrypt _ function (v _ str varchar 2,V_KEY VARCHAR2) ) ) ) ) ) ) )

RETURN VARCHAR2 AS

v_key_rawraw(24;

v_str_rawraw(2000;

v_return_strvarchar2(2000;

V_TYPE PLS_INTEGER;

比根

/* * * * * * * * * * * * * * * * * *

解密函数FUN_DECRYPTION

登门拜访:

输入V_STR密文字符串,约定密文为十六进制字符串

输入V_KEY键字符串。 长度为24字节

返回值:

V_RETURN_STR返回明文字符串

异常处理:

此函数不捕获异常。 请在相应的程序模块中捕获处理异常。

加密方式:

密钥位数: AES 192 DBMS _ crypto.encrypt _ AES 192

连接方式:CBC DBMS_CRYPTO.CHAIN_CBC

填充方式: pkcs5DBMS _ crypto.pad _ pkcs 5

* * * * * * * * * * * * * * * *

v _ key _ raw :=utl _ i18n.string _ to _ raw (v _ key,' ZHS16GBK ' );

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 3360=utl _ i18n.raw _ to _ char (v _ str _ raw,' ZHS16GBK ' );

RETURN V_RETURN_STR;

/*执行

WHEN OTHERS THEN

返回sqlerrm|| sqlcode; */

结束;

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。