oracle dbms_crypto,DBMS_CRYPTO包对Oracle加密

SQL> DECLARE

2    input_string     VARCHAR2(30) := '需要加密的内容';

3    raw_input        RAW(128) := UTL_RAW.CAST_TO_RAW(input_string);

4    --将需要加密的内容转换成RAW格式

5    raw_key          RAW(256);

6    encrypted_raw    RAW(2048);

7    encrypted_string VARCHAR2(2048);

8    decrypted_raw    RAW(2048);

9    decrypted_string VARCHAR2(2048);

10

11  BEGIN

12    dbms_output.put_line('> ========= Get Key Bytes =========');

13

14    raw_key := dbms_crypto.randombytes(24);

15    --随机生成的48位字符密匙

16    dbms_output.put_line('> Key String length: ' || UTL_RAW.LENGTH(raw_key));

17    dbms_output.put_line('> Key String: ' || UTL_RAW.CAST_TO_VARCHAR2(raw_key));

18    dbms_output.put_line('> Input String: ' || input_string);

19    dbms_output.put_line('> ========= BEGIN TEST Encrypt =========');

20    --加密

21    encrypted_raw := dbms_crypto.Encrypt(src => raw_input,

22                                         typ => DBMS_CRYPTO.DES3_CBC_PKCS5,

23                                         key => raw_key);

24

25    dbms_output.put_line('> Encrypted hex value : ' || rawtohex(UTL_RAW.CAST_TO_RAW(encrypted_raw)));

26    dbms_output.put_line('> Encrypted varchar2 value: ' || UTL_RAW.CAST_TO_VARCHAR2(encrypted_raw));

27    --解密

28    decrypted_raw := dbms_crypto.Decrypt(src => encrypted_raw,

29                                         typ => DBMS_CRYPTO.DES3_CBC_PKCS5,

30                                         key => raw_key);

31    --将解密后的RAW转换成String

32    decrypted_string := UTL_RAW.CAST_TO_VARCHAR2(decrypted_raw);

33

34    dbms_output.put_line('> Decrypted string output : ' || decrypted_string);

35

36    if input_string = decrypted_string THEN

37      dbms_output.put_line('> String DES Encyption and Decryption successful');

38    END if;

39  END;

40  /

> ========= Get Key Bytes =========

> Key String length: 24

> Key String: 峈报T??崛╭顋卖I~漥?篻

> Input String: 需要加密的内容

> ========= BEGIN TEST Encrypt =========

> Encrypted hex value : 374132424133453633303945433530364534414334443943303346343735303643464630393330313436454441443930

> Encrypted varchar2 value: z+f0炁洮M?魎橡?F憝

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/573589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大疆手持云台和华为mate20_告别手残,华为Mate30与大疆手持云台拍照真香

智能手机越来越专注于拍照效果,就如笔者现在使用的华为Mate30不仅仅商务范十足,而且拍照技术也是无可挑剔,而想拍的更好有时候外设必不可少,笔者本次搭配了大疆手机云台3的使用,给大家带来一次“华为Mate30与大疆手机云…

MySQL replace into 的坑以及insert相关操作

下面我们主要说一下在插入时候的几种情况: 1:insert ignore 2:replace into 3:ON DUPLICATE KEY UPDATE 关于insert ignore: 关于replace into: 关于ON DUPLICATE KEY UPDATE : MySQL 对 SQL 有很多扩展&a…

php实现tcp连接的原理,PHP实现TCP实例

NotifyService.phpclass NotifyService extends Model{private static $client;private static $redis;/*** 初始化*/protected static function initial(){$url tcp:// . config(ctrl_service.host) . : . config(ctrl_service.port);self::$client stream_socket_client($u…

docker ps3netsrv_QNAP 威联通 NAS TS-212P应用系列 篇一:实践基于QNAP平台搭建PS3NETSRV服务...

QNAP 威联通 NAS TS-212P应用系列 篇一:实践基于QNAP平台搭建PS3NETSRV服务2015-01-01 13:44:0047点赞307收藏70评论小编注:此篇文章来自即可瓜分10万金币,周边好礼达标就有,邀新任务奖励无上限,点击查看活动详情追加修…

一周内自动登录php,利用php实现一周之内自动登录存储机制(cookie、session、localStorage)...

cookie、session、localStorage这三个应该是最让程序员头疼的了,我利用简单的登录界面的username和password来说明一下吧.1.cookie用来存储用户相关数据,存储的位置在用户本地:首先是登录界面定义:Sign me in上面的代码大家都懂吧,就是一个表单.然后就是…

HTTP知识普及系列:HTTP返回状态码

状态码1XX 信息性状态码 接受的请求正在处理  2XX 成功状态码 请求正常处理完毕  3XX 重定向状态码 需要进行附加操作以完成请求  4XX 客户端错误状态码 服务器无法处理请求  5XX 服务器端错误状态码 服务器处理请求出错2XX 相应结果表明请求被正常处理了200 OK 表示从…

来电语音播报软件下载apk_消息语音播报app下载-消息语音播报安卓版 v1.0.1 - 安下载...

消息语音播报app是一款语音播报工具,它可以将微信、QQ、短信等消息进行语音播报,让你能够第一时间知晓消息内容,无需进入界面也能知晓发来的消息;它支持多个场就下使用,开启语音播报后无需你手动打开手机查看消息&…

linux创建特殊文件rules,RHEL5 Oracle Linux 5上生成正确的udev rule 规则文件

RHEL5 Oracle Linux 5上生成正确的udev rule 规则文件1.确认在所有RAC节点上已经安装了必要的UDEV包[rootrh2 ~]# rpm -qa|grep udevudev-095-14.21.el52.通过scsi_id获取设备的块设备的唯一标识名,假设系统上已有LUN sdc-sdifor i in c d e f g h i;doecho "s…

HTTP知识普及系列:HTTP首部

HTTP协议的请求和响应报文中必定包含HTTP首部。首部内容为客户端和服务器分别处理请求和响应提供所需要的信息。在请求中,HTTP报文由方法、URI、HTTP版本、HTTP首部字段等部分构成。在响应中,HTTP报文由HTTP版本、状态码(数字和原因短语&…

maya材质sheen_maya怎样做耐磨金属质感?

maya做出金属质感的方法:基本属里就调颜色跟漫反,colour任意Diffuse调低,滑杆三分之一到四分之一左右Specular Shading高光属Ecceicity、Specular Roll Off以及Specular Color控制高光点强度。面积颜色属一般金属的话第一个打到左边四分之一到…

swift 2.2 语法 (上)

前言&#xff1a; 1.此文中的语法会根据Swift的升级变动而更新。 2.如果需要请移步 -> swift2.2 语法&#xff08;中&#xff09;、swift 2.2语法&#xff08;下&#xff09; Swift与OC中常见的区别 导入框架 OC: #import <UIKit>#import "AFNetWorking.h"…

linux系统创建操作系统用户,linux系统中用户组创建管理linux操作系统 -电脑资料...

用户组管理包括对用户组创建&#xff0c;删除&#xff0c;修改及查看组操作命令&#xff0c;下面我们一起来看看希望本文章对各位同学会有所帮助哦&#xff0c;1&#xff0c;创建组groupadd test增加一个test组2&#xff0c;修改组groupmod -n test2 test将test组的名子改成tes…

android 半透明色值_Android 色值转换成透明度色值

在日常的android开发过程中&#xff0c;UI设计师一般都会或多或少的做一些不同透明度的背景&#xff0c;从而提高交互效果。 一般这个时候设计师们都会丢给我们一个色值&#xff0c;然后告诉我们&#xff0c;透明度30%&#xff0c;40% ......。 如果我们这个时候是给一个view添…

HTML中id、name、class 区别

HTML 中 id与name 区别 一个name可以同时对应多个控件&#xff0c;比如checkbox和radio 而id必须是全文档中唯一的 id的用途 1&#xff09; id是HTML元素的Identity&#xff0c;主要是在客户端脚本里用。 2&#xff09; label与form控件的关联&#xff0c;如 <label for&quo…

Linux系统查看系统硬件,linux怎么查看系统硬件信息

有时候想查看电脑中的系统硬件信息不知道怎么办下面是学习啦小编带来的关于linux怎么查看系统硬件信息的内容&#xff0c;欢迎阅读!linux怎么查看系统硬件信息?查看cpu&#xff1a;lscpu命令&#xff0c;查看的是cpu的统计信息.blueblue-pc:~$ lscpuArchitecture: i686 #cpu架…

manchi翻译中文 mi_求这一段意大利文歌词中文翻译(Mi Manchi)

机器翻译的实在太强大了^_^&#xff01;?你给的歌词不太准确啊&#xff0c;我帮你简单的翻译了一下。由于我是意语水平有限&#xff0c;可能会有小错误&#xff0c;还请高手多指教啊。你要的歌是Fausto Leali在1988年的流行曲&#xff0c;我是在找anna oxa的1988年Quando nasc…

图片的部分拉伸

- (UIImage *)stretchableImageWithLeftCapWidth:(NSInteger)leftCapWidth topCapHeight: (NSInteger)topCapHeight 这个函数是UIImage的一个实例函数&#xff0c;它的功能是创建一个内容可拉伸&#xff0c;而边角不拉伸的图片&#xff0c;需要两个参数&#xff0c;第一个是左边…

linux写一个ls命令,linux 下 如何自己写 ls 命令

有过linux 基础 都知道 ls 命令的作用下面给出实现代码#include #include #include #include #include #include #include #include #include #include int fun1(char *dir,char *filename){struct stat buf;char out[100];if(stat(dir,&buf)<0){perror("stat"…

java开发 时间类型的转换

1.String转date SimpleDateFormat format new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time"2016-05-16 12:45:55"; Date date; try {   date format.parse(time);   System.out.print("Format To times:"date); } catch (Parse…

designer pyqt5 界面切换_PyQt5快速上手基础篇3-设置窗口标题和图标

前言本节我们为QT Designer生成的UI界面添加图标和窗口标题。一、实例运行1. QT Designer设计UI打开designer.exe,使用默认的Main Window创建&#xff0c;直接点击Create按钮即可设计UI图如下&#xff0c;并保存为test.ui2 将test.ui转换为ui_test.py进入ui_test.py目录&#x…