導航:首頁 > 源碼編譯 > 不可逆演算法有哪些

不可逆演算法有哪些

發布時間:2023-06-02 09:53:53

『壹』 網路上可逆、加密壓縮演算法一般有哪些

無損壓縮有:LZ77,LZ78,LZW, FLAC, WavPack, Monkey's Audio, PNG, Tiff
有損的有:mp3, mpeg1/2/4, h.264, h.265, avi, rm,

『貳』 請問SHA1加密演算法也是不可逆的嗎

SHA-1與MD5都是摘要演算法,且為不可逆演算法;
應用角度來講,適用性比安全性重要,兩個演算法長度有所不同,SHA-1 160位,MD5 128位。
如果從安全形度,在計算出摘要後,對摘要進行簽名,可以增加抗抵賴、防篡改的能力,詳情請查看數字簽名的資料。

『叄』 不可逆加密演算法的MD5演算法

MD5中有四個32位被稱作鏈接變數(Chaining Variable)的整數參數,他們分別為:A=0x01234567,B=0x89abcdef,C=0xfedcba98,D=0x76543210。
當設置好這四個鏈接變數後,就開始進入演算法的四輪循環運算。循環的次數是信息中512位信息分組的數目。
將上面四個鏈接變數復制到另外四個變數中:A到a,B到b,C到c,D到d。
主循環有四輪(MD4隻有三輪),每輪循環都很相似。第一輪進行16次操作。每次操作對a、b、c和d中的其中三個作一次非線性函數運算,然後將所得結果加上第四個變數,文本的一個子分組和一個常數。再將所得結果向右環移一個不定的數,並加上a、b、c或d中之一。最後用該結果取代a、b、c或d中之一。
以一下是每次操作中用到的四個非線性函數(每輪一個)。
F(X,Y,Z) =(X&Y)|((~X)&Z)
G(X,Y,Z) =(X&Z)|(Y&(~Z))
H(X,Y,Z) =X^Y^Z
I(X,Y,Z)=Y^(X|(~Z))
(&是與,|是或,~是非,^是異或)
這四個函數的說明:如果X、Y和Z的對應位是獨立和均勻的,那麼結果的每一位也應是獨立和均勻的。F是一個逐位運算的函數。即,如果X,那麼Y,否則Z。函數H是逐位奇偶操作符。
假設Mj表示消息的第j個子分組(從0到15),<<
FF(a,b,c,d,Mj,s,ti)表示a=b+((a+(F(b,c,d)+Mj+ti)<< GG(a,b,c,d,Mj,s,ti)表示a=b+((a+(G(b,c,d)+Mj+ti)<< HH(a,b,c,d,Mj,s,ti)表示a=b+((a+(H(b,c,d)+Mj+ti)<< II(a,b,c,d,Mj,s,ti)表示a=b+((a+(I(b,c,d)+Mj+ti)<<
這四輪(64步)是:
第一輪
FF(a,b,c,d,M0,7,0xd76aa478)
FF(d,a,b,c,M1,12,0xe8c7b756)
FF(c,d,a,b,M2,17,0x242070db)
FF(b,c,d,a,M3,22,0xc1bdceee)
FF(a,b,c,d,M4,7,0xf57c0faf)
FF(d,a,b,c,M5,12,0x4787c62a)
FF(c,d,a,b,M6,17,0xa8304613)
FF(b,c,d,a,M7,22,0xfd469501)
FF(a,b,c,d,M8,7,0x698098d8)
FF(d,a,b,c,M9,12,0x8b44f7af)
FF(c,d,a,b,M10,17,0xffff5bb1)
FF(b,c,d,a,M11,22,0x895cd7be)
FF(a,b,c,d,M12,7,0x6b901122)
FF(d,a,b,c,M13,12,0xfd987193)
FF(c,d,a,b,M14,17,0xa679438e)
FF(b,c,d,a,M15,22,0x49b40821)
第二輪
GG(a,b,c,d,M1,5,0xf61e2562)
GG(d,a,b,c,M6,9,0xc040b340)
GG(c,d,a,b,M11,14,0x265e5a51)
GG(b,c,d,a,M0,20,0xe9b6c7aa)
GG(a,b,c,d,M5,5,0xd62f105d)
GG(d,a,b,c,M10,9,0x02441453)
GG(c,d,a,b,M15,14,0xd8a1e681)
GG(b,c,d,a,M4,20,0xe7d3fbc8)
GG(a,b,c,d,M9,5,0x21e1cde6)
GG(d,a,b,c,M14,9,0xc33707d6)
GG(c,d,a,b,M3,14,0xf4d50d87)
GG(b,c,d,a,M8,20,0x455a14ed)
GG(a,b,c,d,M13,5,0xa9e3e905)
GG(d,a,b,c,M2,9,0xfcefa3f8)
GG(c,d,a,b,M7,14,0x676f02d9)
GG(b,c,d,a,M12,20,0x8d2a4c8a)
第三輪
HH(a,b,c,d,M5,4,0xfffa3942)
HH(d,a,b,c,M8,11,0x8771f681)
HH(c,d,a,b,M11,16,0x6d9d6122)
HH(b,c,d,a,M14,23,0xfde5380c)
HH(a,b,c,d,M1,4,0xa4beea44)
HH(d,a,b,c,M4,11,0x4bdecfa9)
HH(c,d,a,b,M7,16,0xf6bb4b60)
HH(b,c,d,a,M10,23,0xbebfbc70)
HH(a,b,c,d,M13,4,0x289b7ec6)
HH(d,a,b,c,M0,11,0xeaa127fa)
HH(c,d,a,b,M3,16,0xd4ef3085)
HH(b,c,d,a,M6,23,0x04881d05)
HH(a,b,c,d,M9,4,0xd9d4d039)
HH(d,a,b,c,M12,11,0xe6db99e5)
HH(c,d,a,b,M15,16,0x1fa27cf8)
HH(b,c,d,a,M2,23,0xc4ac5665)
第四輪
II(a,b,c,d,M0,6,0xf4292244)
II(d,a,b,c,M7,10,0x432aff97)
II(c,d,a,b,M14,15,0xab9423a7)
II(b,c,d,a,M5,21,0xfc93a039)
II(a,b,c,d,M12,6,0x655b59c3)
II(d,a,b,c,M3,10,0x8f0ccc92)
II(c,d,a,b,M10,15,0xffeff47d)
II(b,c,d,a,M1,21,0x85845dd1)
II(a,b,c,d,M8,6,0x6fa87e4f)
II(d,a,b,c,M15,10,0xfe2ce6e0)
II(c,d,a,b,M6,15,0xa3014314)
II(b,c,d,a,M13,21,0x4e0811a1)
II(a,b,c,d,M4,6,0xf7537e82)
II(d,a,b,c,M11,10,0xbd3af235)
II(c,d,a,b,M2,15,0x2ad7d2bb)
II(b,c,d,a,M9,21,0xeb86d391)
常數ti可以如下選擇:
在第i步中,ti是4294967296*abs(sin(i))的整數部分,i的單位是弧度。(4294967296等於2的32次方)
所有這些完成之後,將A、B、C、D分別加上a、b、c、d。然後用下一分組數據繼續運行演算法,最後的輸出是A、B、C和D的級聯。 一些黑客破獲這種密碼的方法是一種被稱為「跑字典」的方法。有兩種方法得到字典,一種是日常搜集的用做密碼的字元串表,另一種是用排列組合方法生成的,先用MD5程序計算出這些字典項的MD5值,然後再用目標的MD5值在這個字典中檢索。
即使假設密碼的最大長度為8,同時密碼只能是字母和數字,共26+26+10=62個字元,排列組合出的字典的項數則是P(62,1)+P (62,2)….+P(62,8),那也已經是一個很天文的數字了,存儲這個字典就需要TB級的磁碟組,而且這種方法還有一個前提,就是能獲得目標賬戶的密碼MD5值的情況下才可以。

『肆』 MD5、SHA1、CRC32值是干什麼的

MD5(RFC1321)是Rivest於1991年對MD4的改進版本。它對輸入仍以512位分組,其輸出是4個32位字的級聯,與MD4相同。MD5比MD4來得復雜,並且速度較之要慢一點,但更安全,在抗分析和抗差分方面表現更好。

MD5是一種不可逆的加密演算法,目前是最牢靠的加密演算法之一,尚沒有能夠逆運算衫慎模的程序被開發出來,它對應任何字元串都可以加密成一段唯一的固定長度的代碼。

SHA1是由NISTNSA設計為同DSA一起使用的,它對長度小於264的輸入,產生長度為160bit的散列值,因此抗窮舉(brute-force)性更好。

SHA-1設計時基於和MD4相同原理,並且模仿了該演算法。SHA-1是由美國標准技術局(NIST)頒布的國家標准,是一種應用最為廣泛的hash函數演算法,也是目前最先進孝隱的加密技術,被政府部門和私營業主用來處理敏感的信息。而SHA-1基於MD5,MD5又基於MD4。

本身是「冗餘校驗碼」的意思,CRC32則表示會產生一個32bit(8位十六進制數)的校驗值。由於CRC32產生校驗值時源數據塊的每一個bit(位)都參與了計算,所以數據塊中即使或緩只有一位發生了變化,也會得到不同的CRC32值。

(4)不可逆演算法有哪些擴展閱讀:

Hash演算法在信息安全方面的應用主要體現在以下的3個方面:

1)文件校驗

我們比較熟悉的校驗演算法有奇偶校驗和CRC校驗,這2種校驗並沒有抗數據篡改的能力,它們一定程度上能檢測並糾正數據傳輸中的信道誤碼,但卻不能防止對數據的惡意破壞。

MD5Hash演算法的」數字指紋」特性,使它成為目前應用最廣泛的一種文件完整性校驗和(Checksum)演算法,不少Unix系統有提供計算md5checksum的命令

2)數字簽名

Hash演算法也是現代密碼體系中的一個重要組成部分。由於非對稱演算法的運算速度較慢,所以在數字簽名協議中,單向散列函數扮演了一個重要的角色。對Hash值,又稱」數字摘要」進行數字簽名,在統計上可以認為與對文件本身進行數字簽名是等效的。而且這樣的協議還有其他的優點。

3)鑒權協議

如下的鑒權協議又被稱作」挑戰--認證模式:在傳輸信道是可被偵聽,但不可被篡改的情況下,這是一種簡單而安全的方法。

當然,hash函數並不是完全可靠,不同文件產生相同MD5和SHA1的幾率還是有的,只是不高,在我們論壇里提供的系統光碟,你想對這么幾個文件存在相同HASH的不同文件根本是不可能的。

『伍』 不可逆的加密演算法

原型:
int WINAPI icePub_getMD5FromString(char *strData,char *strResult)
輸入:strData 待處理的文本串
輸出:strResult MD5結果串,32位元組
返回碼:

char buff[1024];
char buff2[1024];

strcpy(buff2,"Walk At Familiar Alley, Pursue Concordand's Footfall, Between Front And Back, What Course To Follow?");

typedef int (WINAPI ICEPUB_GETMD5FROMSTRING)(char *strData,char *strResult);
ICEPUB_GETMD5FROMSTRING *icePub_getMD5FromString = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_getMD5FromString=(ICEPUB_GETMD5FROMSTRING *)GetProcAddress(hDLLDrv,"icePub_getMD5FromString");
}
if(icePub_getMD5FromString)
icePub_getMD5FromString(buff2,buff);
if(hDLLDrv)
FreeLibrary(hDLLDrv);

AfxMessageBox(buff);

原型:
int WINAPI icePub_getMD5FromFile(char *strFilePath,char *strResult)
輸入:strFilePath 待MD5的文件名
輸出:strResult MD5結果串,32位元組
返回碼:

char buff[1024];

typedef int (WINAPI ICEPUB_GETMD5FROMFILE)(char *strFilePath,char *strResult);
ICEPUB_DESDECRYPTIONSTRING *icePub_getMD5FromFile = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_getMD5FromFile=(ICEPUB_DESDECRYPTIONSTRING *)GetProcAddress(hDLLDrv,"icePub_getMD5FromFile");
}
if(icePub_getMD5FromFile)
icePub_getMD5FromFile("D:\\icePubDLL.dll",buff);
if(hDLLDrv)
FreeLibrary(hDLLDrv);

AfxMessageBox(buff);

原型:
int WINAPI icePub_sha1FromString(char *strData,char *strResult)
輸入:strData 待處理的文本串
輸出:strResult SHA1結果串,40位元組
返回碼:

char buff[1024];
char buff2[1024];

strcpy(buff2,"Kiss Years's Scar, Strangeness Far Snivel, Between Hart And Head, Cloud And Mist Come And Go.");

typedef int (WINAPI ICEPUB_SHA1ROMSTRING)(char *strData,char *strResult);
ICEPUB_SHA1ROMSTRING *icePub_sha1FromString = 0;
HINSTANCE hDLLDrv = LoadLibrary("icePubDll.dll");
if(hDLLDrv)
{
icePub_sha1FromString=(ICEPUB_SHA1ROMSTRING *)GetProcAddress(hDLLDrv,"icePub_sha1FromString");
}
if(icePub_sha1FromString)
icePub_sha1FromString(buff2,buff);
if(hDLLDrv)
FreeLibrary(hDLLDrv);

AfxMessageBox(buff);

『陸』 為什麼哈希演算法是不可逆的

這個HASH演算法不是大學里數據結構課里那個HASH表的演算法。這里的HASH演算法是密碼學的基礎,比較常用的有MD5和SHA,最重要的兩條性質,就是不可逆和無沖突。所謂不可逆,就是當你知道x的HASH值,無法求出x;所謂無沖突,就是當你知道x,無法求出一個y, 使x與y的HASH值相同。這兩條性質在數學上都是不成立的。因為一個函數必然可逆,且由於HASH函數的值域有限,理論上會有無窮多個不同的原始值,它們的hash值都相同。MD5和SHA做到的,是求逆和求沖突在計算上不可能,也就是正向計算很容易,而反向計算即使窮盡人類所有的計算資源都做不到。我覺得密碼學的幾個演算法(HASH、對稱加密、公私鑰)是計算機科學領域最偉大的發明之一,它授予了弱小的個人在強權面前信息的安全(而且是絕對的安全)。舉個例子,只要你一直使用https與國外站點通訊,並注意對方的公鑰沒有被篡改,G**W可以斷開你的連接,但它永遠不可能知道你們的傳輸內容是什麼。

『柒』 關於不可逆演算法

MD5的不可逆是這樣的,通過明文可以得到密文,但知道密文不能得到明文。
比如,B已經知道了3(密文),這時候A發給B 123456(明文),B把123456通過加密演算法得到3,3與B原來的已知密文相同,就知道A所給的明文是正確的。
密文AB都知道,但是明文只有A知道。B可以通過密文驗證一個數字是不是正確的明文,但是沒有辦法通過密文把明文算出來

閱讀全文

與不可逆演算法有哪些相關的資料

熱點內容
關於cs的電影 瀏覽:399
index/vod/ 瀏覽:740
java開發環境搭建linux 瀏覽:742
主角收服白起鬼魂的小說 瀏覽:723
桌面少了一個文件夾不見怎麼找回 瀏覽:271
單片機連接失敗 瀏覽:302
殺破狼2結局什麼意思 瀏覽:497
看電影網址入口 瀏覽:886
天地23有哪些作品txt下載 瀏覽:599
不用付費看視頻的網站 瀏覽:628
皇宮寫肉寫的很細致的小說 瀏覽:561
征服ol怎麼轉移伺服器 瀏覽:705
恐怖電影國語 瀏覽:947
有吃乳汁電影嗎 瀏覽:888
李采潭出演的善良的女老師3 瀏覽:173
台灣影視在線免費看 瀏覽:106
支付寶跳蹬app源碼下載 瀏覽:886
倩女銷魂 紀倩倩 瀏覽:53
周星馳粵語電影 瀏覽:516
5個小時的愛情電影在線觀看 瀏覽:975