導航:首頁 > 文檔加密 > md5加密解密函數

md5加密解密函數

發布時間:2022-05-10 06:26:06

『壹』 asp md5解密演算法

親,知道什麼是不可逆的加密演算法嗎?MD5就是這樣一種演算法,它的加密過程是不可逆的,什麼是不可逆,通俗的說是無法解密的。一般我們這樣操作:在注冊密碼之後,給密碼md5加密,將加密的內容存入資料庫(我們不能把明文密碼直接存入資料庫,這樣非常危險的。)。那麼登陸的時候,將用戶輸入的密碼先進行md5加密之後,查找資料庫用戶名一樣的用戶,讀取它的密碼,比較,一樣的話就對了。不知道我的回答有沒有解決你的問題?

『貳』 MD5演算法如何解密

介紹MD5加密演算法基本情況MD5的全稱是Message-Digest Algorithm 5,在90年代初由MIT的計算機科學實驗室和RSA Data Security Inc發明,經MD2、MD3和MD4發展而來。
Message-Digest泛指位元組串(Message)的Hash變換,就是把一個任意長度的位元組串變換成一定長的大整數。請注意我使用了"位元組串"而不是"字元串"這個詞,是因為這種變換只與位元組的值有關,與字元集或編碼方式無關。

MD5將任意長度的"位元組串"變換成一個128bit的大整數,並且它是一個不可逆的字元串變換演算法,換句話說就是,即使你看到源程序和演算法描述,也無法將一個MD5的值變換回原始的字元串,從數學原理上說,是因為原始的字元串有無窮多個,這有點象不存在反函數的數學函數。

MD5的典型應用是對一段Message(位元組串)產生fingerprint(指紋),以防止被"篡改"。舉個例子,你將一段話寫在一個叫readme.txt文件中,並對這個readme.txt產生一個MD5的值並記錄在案,然後你可以傳播這個文件給別人,別人如果修改了文件中的任何內容,你對這個文件重新計算MD5時就會發現。如果再有一個第三方的認證機構,用MD5還可以防止文件作者的"抵賴",這就是所謂的數字簽名應用。

MD5還廣泛用於加密和解密技術上,在很多操作系統中,用戶的密碼是以MD5值(或類似的其它演算法)的方式保存的,用戶Login的時候,系統是把用戶輸入的密碼計算成MD5值,然後再去和系統中保存的MD5值進行比較,而系統並不"知道"用戶的密碼是什麼。

一些黑客破獲這種密碼的方法是一種被稱為"跑字典"的方法。有兩種方法得到字典,一種是日常搜集的用做密碼的字元串表,另一種是用排列組合方法生成的,先用MD5程序計算出這些字典項的MD5值,然後再用目標的MD5值在這個字典中檢索。

即使假設密碼的最大長度為8,同時密碼只能是字母和數字,共26+26+10=62個字元,排列組合出的字典的項數則是P(62,1)+P(62,2)....+P(62,8),那也已經是一個很天文的數字了,存儲這個字典就需要TB級的磁碟組,而且這種方法還有一個前提,就是能獲得目標賬戶的密碼MD5值的情況下才可以。

在很多電子商務和社區應用中,管理用戶的Account是一種最常用的基本功能,盡管很多Application Server提供了這些基本組件,但很多應用開發者為了管理的更大的靈活性還是喜歡採用關系資料庫來管理用戶,懶惰的做法是用戶的密碼往往使用明文或簡單的變換後直接保存在資料庫中,因此這些用戶的密碼對軟體開發者或系統管理員來說可以說毫無保密可言,本文的目的是介紹MD5的Java Bean的實現,同時給出用MD5來處理用戶的Account密碼的例子,這種方法使得管理員和程序設計者都無法看到用戶的密碼,盡管他們可以初始化它們。但重要的一點是對於用戶密碼設置習慣的保護

『叄』 MD5加密解密問題

MD5(中文名為消息摘要演算法第五版)為計算機安全領域廣泛使用的一種散列函數,用以提供消息的完整性保護。這個的意思就是這個演算法生成的結果其實是用來驗證我們發送出來的數據有沒有被其他人修改過,這就是為什麼網上有很多專門來解密MD5的原因了,因為他本來就不是用來加密的。所以你希望加密的話,你可以考慮採用RSA加密,從目前來說的話,RSA2048位的加密,還沒有人能解密。

『肆』 asp如何調用MD5解密

經過MD5加密的數據是不能解密的。
有種辦法就是到資料庫找到加密後的內容,然後比對也可以進入。
如:TextBox1.Text 是輸入的密碼,那就把加密的方法 xxx(TextBox1.Text )在和資料庫里的這個加密的欄位去比就OK了。

『伍』 Oracle定義DES加密解密及MD5加密函數示例

(1)DES加密函數
create
or
replace
function
encrypt_des(p_text
varchar2,
p_key
varchar2)
return
varchar2
is
v_text
varchar2(4000);
v_enc
varchar2(4000);
raw_input
RAW(128)
;
key_input
RAW(128)
;
decrypted_raw
RAW(2048);
begin
v_text
:=
rpad(
p_text,
(trunc(length(p_text)/8)+1)*8,
chr(0));
raw_input
:=
UTL_RAW.CAST_TO_RAW(v_text);
key_input
:=
UTL_RAW.CAST_TO_RAW(p_key);
dbms_obfuscation_toolkit.DESEncrypt(input
=>
raw_input,key
=>
key_input,encrypted_data
=>decrypted_raw);
v_enc
:=
rawtohex(decrypted_raw);
dbms_output.put_line(v_enc);
return
v_enc;
end;
(2)DES解密函數
create
or
replace
function
decrypt_des(p_text
varchar2,p_key
varchar2)
return
varchar2
is
v_text
varchar2(2000);
begin
dbms_obfuscation_toolkit.DESDECRYPT(input_string
=>
UTL_RAW.CAST_TO_varchar2(p_text),key_string
=>p_key,
decrypted_string=>
v_text);
v_text
:=
rtrim(v_text,chr(0));
dbms_output.put_line(v_text);
return
v_text;
end;
(3)MD5加密函數
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;
(4)函數使用示例
DES加密:
update
tb_salarysign_staff
s
set
s.staffpwd
=encrypt_des(s.staffpwd,
'test#5&124*!de');
DES解密:select
decrypt_des(s.staffpwd,
'test#5&124*!de')
from
tb_salarysign_staff
s
MD5加密:
update
tb_salarysign_staff
s
set
s.staffpwd
=
md5(s.staffpwd);

『陸』 如何利用Oracle自帶的MD5對數據進行加密

1、DBMS_OBFUSCATION_TOOLKIT.MD5是MD5編碼的數據包函數
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;
select md5('123456') from al;
MD5('123456')


2、DES加密
create or replace function
encrypt_des(p_text varchar2, p_key varchar2) return varchar2 is
v_text varchar2(4000);
v_enc varchar2(4000);
raw_input RAW(128) ;
key_input RAW(128) ;
decrypted_raw RAW(2048);
begin
v_text := rpad( p_text, (trunc(length(p_text)/8)+1)*8, chr(0));
raw_input := UTL_RAW.CAST_TO_RAW(v_text);
key_input := UTL_RAW.CAST_TO_RAW(p_key);
dbms_obfuscation_toolkit.DESEncrypt(input => raw_input,key => key_input,encrypted_data =>decrypted_raw);
v_enc := rawtohex(decrypted_raw);
dbms_output.put_line(v_enc);
return v_enc;
end;
DES加密:
update tb_salarysign_staff s set s.staffpwd =encrypt_des(s.staffpwd, 'test#5&124*!de');
3、DES解密函數
create or replace function decrypt_des(p_text varchar2,p_key varchar2) return varchar2 is
v_text varchar2(2000);
begin
dbms_obfuscation_toolkit.DESDECRYPT(input_string => UTL_RAW.CAST_TO_varchar2(p_text),key_string =>p_key, decrypted_string=> v_text);
v_text := rtrim(v_text,chr(0));
dbms_output.put_line(v_text);
return v_text;
end;
DES解密:select decrypt_des(s.staffpwd, 'test#5&124*!de') from tb_salarysign_staff s;

『柒』 什麼是MD5加密和解密它(數值)和驗證文件是否一致性有什麼區別

MD5信息摘要演算法,是一種被廣泛使用的密碼散列函數,可以產生出一個128位(16位元組)的散列值,用於確保信息傳輸完整一致。
首先他並不是加密和解密的演算法,他其實是利用輸入文件的信息計算出一個唯一對應的散列,當輸入信息有變化,結果也會有相應的變化。這樣的話,我們就可以利用md5的結果來驗證文件是不是有修改。這樣我們就從演算法上來保證md5結果和驗證文件有一一對應的關系。

『捌』 在php5中md5在加密字元串後如何解密

MD5加密是不能逆運算的,現在的破解大都是窮盡法,就是有一個龐大的MD5碼對照表放在那裡,然後一個一個去對照著查。

『玖』 在線MD5解密

d5密文破解(解密)可以說是網路攻擊中的一個必不可少的環節,是黑客工具中的一個重要「輔助工具」。md5解密主要用於網路攻擊,在對網站等進行入侵過程,有可能獲得管理員或者其他用戶的賬號和密碼值(md5加密後的值)。獲得的密碼值有兩種情況,一種是明文,另外一種就是對明文進行了加密。如果密碼值是加密的,這個時候就需要對密碼值進行判斷,如果是採取md5加密,則可以通過MD5Crack3等軟體進行破解。王小雲教授的md5密碼碰撞破解演算法沒有公布,因此目前Md5解密方式主要採取暴力破解,
即軟體通過演算法生成字典,然後使用md5函數加密該字典中的值形成密文,接著跟需要破解的密文進行比較,如果相同則認為破解成功。目前網上有很多網站提供md5加密或者加密值查詢,將加密後的md5值,輸入到網站中,如果網站資料庫中存在該md5,則該值對應的md5加密前的值就為密碼。本案例介紹如何使用MD5Crack3以及一些在線的網站來進行破解;MD5Crack3是阿獃寫的一款md5密碼破解軟體,其網站地址:http://www.adintr.com/subject/mdcrk/index.htm,目前已經發布了MD5Crack4.0版本,也可以到我的blog(http://simeon.blog.51cto.com/18680/144558)去下載。
(一)在線生成md5密碼值
1.有關md5加解密知識
Md5密文破解(解密)可以說是網路攻擊中的一個必不可少的環節,是黑客工具中的一個重要「輔助工具」。md5解密主要用於網路攻擊,在對網站等進行入侵過程,有可能獲得管理員或者其他用戶的賬號和密碼值(md5加密後的值)。獲得的密碼值有兩種情況,一種是明文,另外一種就是對明文進行了加密。如果密碼值是加密的,這個時候就需要對密碼值進行判斷,如果是採取md5加密,則可以通過MD5Crack4等軟體進行破解。王小雲教授的md5密碼碰撞破解演算法沒有公布,因此目前Md5解密方式主要採取暴力破解,
即軟體通過演算法生成字典,然後使用md5函數加密該字典中的值形成密文,接著跟需要破解的密文進行比較,如果相同則認為破解成功。目前網上有很多網站提供md5加密或者加密值查詢,將加密後的md5值,輸入到網站中,如果網站資料庫中存在該md5,則該值對應的md5加密前的值就為密碼。
2.通過cmd5網站生成md5密碼
在瀏覽器中輸入地址「http://www.cmd5.com/」,在輸入框中輸入想要加密的原始密碼,然後單擊「md5加密或解密」按鈕即可,如圖1所示,原始密碼為「goodman88」,加密後的密碼值為:
MD5(goodman88,32)
=

MD5(goodman88,16)
=
15259023faa219f5

圖1
md5加密
作為實驗數據,我們在生成一組生日的md5密碼如下:
MD5(19801230,32)
=

MD5(19801230,16)
=
336a8eb3ebc1e42e
(二)在線破解md5密碼值
1.通過cmd5網站破解md5密碼
在cmd5網站的輸入框中輸入剛才加密後的md5
32值「」,然後單擊「md5加密或解密」按鈕即可,如圖2所示,未能成功破解。

圖2
通過cmd5網站未能破解md5密碼
將第二個生日加密後的md5值「」,放入cmd5網站進行破解,很快其結果就出來了,如圖3所示。

圖3
破解簡單的數字密碼
2.在線md5破解網站收費破解高難度的md5密碼值
一些在線網站提供的md5密碼破解只能破解已經收錄和一些簡單的密碼,對於稍微復雜一點的密碼,都不容易被破解;而且對一些稍微有點難度的md5密碼值,如果資料庫中有,在線網站是要求付費的,例如用一個復雜一點的md5值進行破解,如圖4所示,提示找到,但是要求進行付費。

圖4要求付費才能查看md5密碼值
(三)使用字典暴力破解md5密碼值
1.再次生成md5密碼值
再在cmd5網站生成原密碼為「jimmychu246」的md5密碼值為:
MD5(jimmychu246,32)
=

MD5(jimmychu246,16)
=
b6b2e5aaca9fd171
直接運行md5crack4,運行界面如圖5所示。

圖5
md5crack4程序主界面
2.在md5crack4中驗證md5值
將需要破解的md5值()粘貼到「破解單個密文(Single
Cryptograph)」輸入框中,如圖6所示,如果該md5值是正確的,則會在「破解單個密文」輸入框下方顯示黑色的「有效(valid)」兩個字,否則顯示「valid」為灰色。

3.使用字典進行破解
在「字元設置(Plaintext
Setting)」中選擇「字典(Dictionary)」,並在「N0.1」、「N0.2」以及「N0.3」中選擇三個不同的字典,選擇完畢後,單擊「Start」按鈕開始md5破解,破解結束後會給出相應的提示,如圖7所示,在本案例中使用字典破解成功,在Result中顯示破解的密碼為「jimmychu246」。

圖7使用字典進行破解
4.「使用字元集(Char
Muster)」中的數字進行破解
將上面生成的數字md5值「336a8eb3ebc1e42e」放入單一md5密碼破解輸入框中,選中「Char
Muster」後,依次可以選擇「Number」、「lowercase」、「majuscule」、「special
char」以及「custom」進行破解,在本例中使用數字進行破擊,因此
「最小長度(Min
Length)」中設置為「1」,「最大長度(Max
Length)」中設置為「8」,然後單擊「開始」按鈕,使用數字進行md5破解,嘗試破解密碼位數從1~9999999之間的所有數字組合,如圖8所示,其密碼值破解成功,破解結果為「336a8eb3ebc1e42e
--->
[19801230]」。

圖8
使用數字進行破解
&說明
(1)在md5crack4中還可以定義數字、大小字母、特殊字元的組合來進行破解。
(2)如果計算機配置比較好,可以設置更多線程。
(3)如果自定義進行破解,建議先選擇使用數字,然後依次是數字、大小字母、特殊字元的組合。破解時先易後難,否則破解時間太長。
(4)在md5crack4還可以「使用插件」進行破解。
(5)在md5crack4中還可以設置軟體顯示的語言版本,一共有中文簡體和英語兩個版本,單擊主界面中的設置(Option),即可進行設置,如圖9所示。

圖9
設置md5crack4
5.一次破解多個密碼
將需要破解的md5密碼全部存放到一個txt文件中,每一個密碼獨立一行,然後在md5crack4中單擊「破解多個密文」,選擇剛才編輯的md5密碼文件,如圖10所示,選擇一種破解方式,在本案例中選擇使用數字字典進行破解,最後單擊「開始」按鈕開始破解。

圖10
破解多個md5密碼值
在md5crack4右下方會顯示破解結果,單擊「日誌」可以查看md5值校驗等日誌信息,單擊「結果」可以查看破解的結果,如圖11所示,在結果中會將md5值與原始密碼進行一一對應。

圖11
破解結果
Md5加解密是網路攻防中必須掌握的知識,本文介紹了使用md5cracker以及通過網站來對md5值進行破解,對md5破解,可以先在一些md5破解網站進行破解,如果未能破解,則可以在本地通過md5cracker進行破解。
ps:轉載至安天365

閱讀全文

與md5加密解密函數相關的資料

熱點內容
福萬通app哪裡查到期 瀏覽:344
蘋果換手機如何還原app 瀏覽:560
雲伺服器測試技巧 瀏覽:546
網盤裡面的文件如何解壓 瀏覽:463
linux查看應用的埠 瀏覽:97
拉伸訓練pdf 瀏覽:92
如何撥號到中央伺服器 瀏覽:648
中國天才少年程序員 瀏覽:352
編程思想pdf 瀏覽:282
加密歐美航線 瀏覽:48
svn怎麼看伺服器的地址 瀏覽:187
騎馬與砍殺1命令部隊用盾牌 瀏覽:595
光纜pdf 瀏覽:350
加密流量實時監測 瀏覽:628
360壓縮和好壓哪個好 瀏覽:61
python判斷變數是否為list 瀏覽:906
雲伺服器1m帶寬表示什麼意思 瀏覽:702
429升冷櫃用多大壓縮機 瀏覽:116
決策樹演算法java實現 瀏覽:376
androidtv開發焦點控制 瀏覽:328