16字节 oracle md5,Oracle中的MD5加密

因为要用到MD5加密,所以在网上搜了一下相关资料,并进行仔细研究。其核心就是MD5编码的数据包函数:DBMS_OBFUSCATION_TOOLKIT.M

因为要用到MD5加密,所以在网上搜了一下相关资料,并进行仔细研究。其核心就是MD5编码的数据包函数:DBMS_OBFUSCATION_TOOLKIT.MD5,这里涉及到RAW类型,其实就是原始的代码值。

MD5加密的结果就是16个byte值,也就是是RAW类型,是显示不出来的,要正确显示,需要经过Utl_Raw.Cast_To_Raw转换,这个函数的作用是将每个字节的值用十六进制字符表示出来。为了说明清楚,举例如下:假定一个字节的二进制值是0100 0001,十六进制表示就是41(这个值实际上就是字母“A”的ASCII代码值,硬要显示,还是可以显示出A来的,但有些非ASCII码的值就显示不出来了,比如1100 0001,十六进制表示就是C1),那么经过Utl_Raw.Cast_To_Raw转换后就变成了字符串“41”。

Utl_Raw.Cast_To_Raw函数也可以转换字符串,也就是将字符串的代码值(应该是Oracle字符集内码)以十六进制表示出来,例如:

utl_raw.cast_to_raw('iamlaosong')的结果是:69616D6C616F736F6E67

utl_raw.cast_to_raw('我是老宋')的结果是:CED2CAC7C0CFCBCE

MD5包函数的使用方法如下:

1、直接调用

declare

v2 varchar2(32);

begin

v2 := Utl_Raw.Cast_To_Raw(sys.dbms_obfuscation_toolkit.md5(input_string => '123456'));

dbms_output.put_line(v2);

end;

显示结果:E10ADC3949BA59ABBE56E057F20F883E

这个字符串实际上是16个字节的值用十六进制表示的结果,其中的字符是0-9和A-F,,正因为如此,其中的字母大小写是无关的,都表示同一个值。

再举个例子,字符串:iamlaosong,加密后显示的结果:7E0FB497D8C4515157DDEAFC2E511290,很显然,也是16个字节的十六进制表示。

至于加密结果的比较,还是转换成字符串后较为直观,比较起来也方便一些。

2、构造函数后,再调用

CREATE OR REPLACE FUNCTION MD5(

passwd IN VARCHAR2)

RETURN VARCHAR2

IS

retval varchar2(32);

BEGIN

retval := utl_raw.cast_to_raw(DBMS_OBFUSCATION_TOOLKIT.MD5(INPUT_STRING => passwd)) ;

RETURN retval;

END;

调用md5函数示例:

select md5(1) from dual

本文永久更新链接地址:

1428d0e076c3959ab11d28a39bc84fab.png

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

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

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

相关文章

ip字符串转换 linux,Linux网络编程入门

在日常使用,我们更多的使用十进制字符串表示IP地址,比如192.169.130.66,而不是记忆32位的IP地址(关键是太长了记不住呀),使用字符串IP更为方便,可读性也更好。但是根据上述in_addr定义,网络编程中需要的是网…

linux php目录是否存在,PHP判断文件或者目录是否可写,兼容windows/linux系统

在PHP中,可用is_writable()函数来判断一个 文件/目录 是否可写,用是否可生成文件的方式判断目录是否可写;网上的一些代码大多数能判断linux系统,但windows服务器下判断不准确。下面的代码兼容windows和linux判断文件或目录是否可写…

linux 脚本 发送邮件,shell 脚本发送邮件

有时候会使用脚本完成一系列的自动化工作,工作完成后还需要邮件通知相关人员,此时可以使用第三方的工具:SendEmail,最新版本sendEmail-v1.56.tar.gz下载地址:http://caspian.dotconf.net/menu/Software/SendEmail/sendEmil的使用范…

link linux 跨设备,Linux中的两种link方式

Linux系统中包括两种链接方式:硬链接(hard link)和符号链接(symbolic link),其中符合链接就是所谓的软链接(soft link),那么两者之间到底有什么区别呢?inode在Linux系统中,内核为每一个新创建的文件分配一个inode&…

linux 运行ca.crt,linux下使用openssl生成 csr crt CA证书,opensslcsr

linux下使用openssl生成 csr crt CA证书,opensslcsr本文主要借鉴和引用了下面2个地址的内容,然后在自己的机器上进行了测试和执行,并做了如下记录。ref:http://blog.chinaunix.net/uid-26760055-id-3128132.htmlhttp://www.111cn.net/sys/lin…

linux cpu核数和线程数,cpu个数、核数和线程的理解

1.查看物理cpu个数grep physical id /proc/cpuinfo | sort -u | wc -l2.查看核心数量grep core id /proc/cpuinfo | sort -u | wc -l3.查看线程数grep processor /proc/cpuinfo | sort -u | wc -lcat /proc/cpuinfo 查看文件里面关键信息processor : 23 ----------代表…

linux设置超链接,帮助-链接 - Linux Kernel Newbies

this page is outdated and needs to be fixed参考链接形式语法备注内部链接WikiNameCamelCase page name内部自由链接["Page"] or ["free link"]可配置函数内部子页面链接/SubPage or ["/Sub page"]相对于上一级页面外部链接http://example.net…

linux 文件系统cache,终于找到一篇详解Linux文件系统Cache的文章

级别: 初级2006 年 5 月 11 日文件 Cache 管理是 Linux 内核中一个很重要并且较难理解的组成部分。本文详细介绍了 Linux内核中文件 Cache 管理的各个方面,希望能够对开发者理解相关代码有所帮助。自从诞生以来,Linux 就被不断完善和普及&…

宝塔Linux怎么安装Mariadb,如何在linux上面安装mariadb总结

1、下载MariaDB(mariadb-5.5.31.tar.gz)[rootzabbix_server opt]# wget http://www.cmake.org/files/v2.8/cmake-2.8.5.tar.gz2、安装MariaDB[rootzabbix_server opt]# tar xzvf mariadb-5.5.31.tar.gz[rootzabbix_server cmake-2.8.5]# cd cmake-2.8.5[rootzabbix_server cmak…

c语言数码管加法程序怎么写,拜托大神写数码管与矩阵键盘结合设计简易计算器C语言的程序...

我和你用的是一样的,给你一个我买板子送的矩阵程序//4*4键盘检测程序,按下键后相应的代码显示在数码管上#includesbit beepP2^3;sbit dulaP2^6;sbit welaP2^7;unsigned char i100;unsigned char j,k,temp,key;void delay(unsigned char i){for(ji;j>0;j--)for(k1…

七桥问题c语言程序数据结构,数据结构与算法学习——图论

什么是图?在计算机程序设计中,图结构也是一种非常常见的数据结构但是图论其实是一个非常大的话题图结构是一种与树结构有些相似的数据结构图论是数学的一个分支,并且在数学概念上,树是图的一种它以图为研究对象,研究顶…

c语言式表白,c语言表白必备

c语言表白必备七夕情人节表白必备,多颜色心形展示看图#include#include#include#include #define r 10#define R 172int main(){int i;printf("我");fflush(stdout); //强制刷新缓存,输出显示Sleep(1000);printf("自");fflush(stdou…

《c#编程语言详解》,C#编程语言详解(第2版)

前言前 言C#项目启动于七年前——1998年12月,其目标是为全新的并命名为.NET的平台创建一种简单、现代、面向对象和类型安全的程序设计语言。从那时起,C#已经走过了漫长的道路。现在,成千上万的程序员在使用C#语言;ECMA和ISO/IEC已…

明解c语言中级篇微盘,明解C语言:中级篇

第1章 猜数游戏  11-1 猜数判定  2通过if语句实现条件分支  2if语句的嵌套  3实现多分支的方法  41-2 重复到猜对为止  8通过do语句循环  8相等运算符和关系运算符  9通过while语句循环  10break语句  10while语句和do语句  11先判断后循环和先循环后…

共同体不是c语言中的一个数据类型,《c语言程序设计教学资料》第12章---构体和共同体.ppt...

《c语言程序设计教学资料》第12章---构体和共同体向函数传递结构体 用结构体指针或结构体数组作为函数参数,向函数传递结构体的地址 按值调用 按地址调用 结构体变量作函数参数 实现按值调用 结构体指针作函数参数 从函数返回 结构体变量的值 共用体 共用体所占内存…

android中gradle的作用,Gradle 之 Android 中的应用

在上一篇文章中 Gradle 之语言基础 Groovy 主要介绍了 Groovy 的基础语法(如果没有 Groovy 的基础,建议先看看上篇文章,如果可以动手敲一下里面的示例代码就更好不过了),也是为本篇文章打基础的。本篇文章主要介绍 Gradle 在 Android 中的应用…

android程序更改pdf文件格式,Android根据pdf模板生成pdf文件

1 public voidFillPdfTemplate(String id) {2 android.icu.text.SimpleDateFormat simpleDateFormat 3 new android.icu.text.SimpleDateFormat("HHmmss");//HH:mm:ss4 //设置默认时区5 simpleDateFormat.setTimeZone(android.icu.util.TimeZone.getTimeZone("G…

android页面跳转时获取地址栏,Android 利用scheme页面内跳转协议进行跳转

什么是 URL Scheme?android中的scheme是一种页面内跳转协议。通过定义自己的scheme协议,可以非常方便跳转app中的各个页面;通过scheme协议,服务器可以定制化告诉App跳转到APP内部页面。之前项目都是我们客户端和服务器端用自定义j…

android按钮置于顶层,如何把按键显示在最顶层窗口上(屏幕最顶上)

[Delphi] 纯文本查看 复制代码unit Unit2;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs;typeTForm2 class(TForm)procedure FormCreate(Sender: TObject);private{ …

android signalr 自动重连,.net-何时在signalR中重新连接?

当客户端脱机然后不久后重新获得连接时,就会发生集线器重新连接。 SignalR配置值在很大程度上决定了以下示例的时间戳,因此无需逐字记录时间。以下是一些示例及其涉及重新连接行为的结果(时间格式:m:ss):当我提到以下内…