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.pswp.cn/news/530842.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530842.shtml
英文地址,請注明出處:http://en.pswp.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):當我提到以下內…