導航:首頁 > 文檔加密 > 什麼叫加密代碼標准

什麼叫加密代碼標准

發布時間:2022-06-23 04:31:40

⑴ 什麼是加密技術

1.什麼是加密技術?

加密技術是電子商務採取的主要安全保密措施,是最常用的安全保密手段,利用技術手段把重要的數據變為亂碼(加密)傳送,到達目的地後再用相同或不同的手段還原(解密)。加密技術包括兩個元素:演算法和密鑰。演算法是將普通的文本(或者可以理解的信息)與一竄數字(密鑰)的結合,產生不可理解的密文的步驟,密鑰是用來對數據進行編碼和解碼的一種演算法。在安全保密中,可通過適當的密鑰加密技術和管理機制來保證網路的信息通訊安全。密鑰加密技術的密碼體制分為對稱密鑰體制和非對稱密鑰體制兩種。相應地,對數據加密的技術分為兩類,即對稱加密(私人密鑰加密)和非對稱加密(公開密鑰加密)。對稱加密以數據加密標准(DNS,Data Encryption Standard)演算法為典型代表,非對稱加密通常以RSA(Rivest Shamir Ad1eman)演算法為代表。對稱加密的加密密鑰和解密密鑰相同,而非對稱加密的加密密鑰和解密密鑰不同,加密密鑰可以公開而解密密鑰需要保密。

2.什麼是對稱加密技術?

對稱加密採用了對稱密碼編碼技術,它的特點是文件加密和解密使用相同的密鑰,即加密密鑰也可以用作解密密鑰,這種方法在密碼學中叫做對稱加密演算法,對稱加密演算法使用起來簡單快捷,密鑰較短,且破譯困難,除了數據加密標准(DNS),另一個對稱密鑰加密系統是國際數據加密演算法(IDEA),它比DNS的加密性好,而且對計算機功能要求也沒有那麼高。IDEA加密標准由PGP(Pretty Good Privacy)系統使用。

3.什麼是非對稱加密技術?

1976年,美國學者Dime和Henman為解決信息公開傳送和密鑰管理問題,提出一種新的密鑰交換協議,允許在不安全的媒體上的通訊雙方交換信息,安全地達成一致的密鑰,這就是「公開密鑰系統」。相對於「對稱加密演算法」這種方法也叫做「非對稱加密演算法」。與對稱加密演算法不同,非對稱加密演算法需要兩個密鑰:公開密鑰(publickey)和私有密 (privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。因為加密和解密使用的是兩個不同的密鑰,所以這種演算法叫作非對稱加密演算法。

⑵ 簡述最常用的加密標准及其實現方法和技術

作者:老羅

這是從「VC編程經驗總結7」中轉出來的

借花獻佛——如何通過崩潰地址找到出錯的代碼行

作為程序員,我們平時最擔心見到的事情是什麼?是內存泄漏?是界面不好看?……錯啦!我相信我的看法是不會有人反對的--那就是,程序發生了崩潰!

「該程序執行了非法操作,即將關閉。請與你的軟體供應商聯系。」,呵呵,這句 M$ 的「名言」,恐怕就是程序員最擔心見到的東西了。有的時候,自己的程序在自己的機器上運行得好好的,但是到了別人的機器上就崩潰了;有時自己在編寫和測試的過程中就莫名其妙地遇到了非法操作,但是卻無法確定到底是源代碼中的哪行引起的……是不是很痛苦呢?不要緊,本文可以幫助你走出這種困境,甚至你從此之後可以自豪地要求用戶把崩潰地址告訴你,然後你就可以精確地定位到源代碼中出錯的那行了。(很神奇吧?呵呵。)

首先我必須強調的是,本方法可以在目前市面上任意一款編譯器上面使用。但是我只熟悉 M$ 的 VC 和 MASM ,因此後面的部分只介紹如何在這兩個編譯器中實現,請讀者自行融會貫通,掌握在別的編譯器上使用的方法。

Well,廢話說完了,讓我們開始! :)

首先必須生成程序的 MAP 文件。什麼是 MAP 文件?簡單地講, MAP 文件是程序的全局符號、源文件和代碼行號信息的唯一的文本表示方法,它可以在任何地方、任何時候使用,不需要有額外的程序進行支持。而且,這是唯一能找出程序崩潰的地方的救星。

好吧,既然 MAP 文件如此神奇,那麼我們應該如何生成它呢?在 VC 中,我們可以按下 Alt+F7 ,打開「Project Settings」選項頁,選擇 C/C++ 選項卡,並在最下面的 Project Options 裡面輸入:/Zd ,然後要選擇 Link 選項卡,在最下面的 Project Options 裡面輸入: /mapinfo:lines 和 /map:PROJECT_NAME.map 。最後按下 F7 來編譯生成 EXE 可執行文件和 MAP 文件。

在 MASM 中,我們要設置編譯和連接參數,我通常是這樣做的:

rc %1.rc
ml /c /coff /Zd %1.asm
link /subsystem:windows /mapinfo:exports /mapinfo:lines /map:%1.map %1.obj %1.res

把它保存成 makem.bat ,就可以在命令行輸入 makem filename 來編譯生成 EXE 可執行文件和 MAP 文件了。

在此我先解釋一下加入的參數的含義:

/Zd 表示在編譯的時候生成行信息
/map[:filename] 表示生成 MAP 文件的路徑和文件名
/mapinfo:lines 表示生成 MAP 文件時,加入行信息
/mapinfo:exports 表示生成 MAP 文件時,加入 exported functions (如果生成的是 DLL 文件,這個選項就要加上)

OK,通過上面的步驟,我們已經得到了 MAP 文件,那麼我們該如何利用它呢?

讓我們從簡單的實例入手,請打開你的 VC ,新建這樣一個文件:

01 file://****************************************************************
02 file://程序名稱:演示如何通過崩潰地址找出源代碼的出錯行
03 file://作者:羅聰
04 file://日期:2003-2-7
05 file://出處:http://www.luocong.com(老羅的繽紛天地)
06 file://本程序會產生「除0錯誤」,以至於會彈出「非法操作」對話框。
07 file://「除0錯誤」只會在 Debug 版本下產生,本程序為了演示而盡量簡化。
08 file://注意事項:如欲轉載,請保持本程序的完整,並註明:
09 file://轉載自「老羅的繽紛天地」(http://www.luocong.com)
10 file://****************************************************************
11
12 void Crash(void)
13 {
14 int i = 1;
15 int j = 0;
16 i /= j;
17 }
18
19 void main(void)
20 {
21 Crash();
22 }

很顯然本程序有「除0錯誤」,在 Debug 方式下編譯的話,運行時肯定會產生「非法操作」。好,讓我們運行它,果然,「非法操作」對話框出現了,這時我們點擊「詳細信息」按鈕,記錄下產生崩潰的地址--在我的機器上是 0x0040104a 。

再看看它的 MAP 文件:(由於文件內容太長,中間沒用的部分我進行了省略)

CrashDemo

Timestamp is 3e430a76 (Fri Feb 07 09:23:02 2003)

Preferred load address is 00400000

Start Length Name Class
0001:00000000 0000de04H .text CODE
0001:0000de04 0001000cH .textbss CODE
0002:00000000 00001346H .rdata DATA
0002:00001346 00000000H .edata DATA
0003:00000000 00000104H .CRT$XCA DATA
0003:00000104 00000104H .CRT$XCZ DATA
0003:00000208 00000104H .CRT$XIA DATA
0003:0000030c 00000109H .CRT$XIC DATA
0003:00000418 00000104H .CRT$XIZ DATA
0003:0000051c 00000104H .CRT$XPA DATA
0003:00000620 00000104H .CRT$XPX DATA
0003:00000724 00000104H .CRT$XPZ DATA
0003:00000828 00000104H .CRT$XTA DATA
0003:0000092c 00000104H .CRT$XTZ DATA
0003:00000a30 00000b93H .data DATA
0003:000015c4 00001974H .bss DATA
0004:00000000 00000014H .idata$2 DATA
0004:00000014 00000014H .idata$3 DATA
0004:00000028 00000110H .idata$4 DATA
0004:00000138 00000110H .idata$5 DATA
0004:00000248 000004afH .idata$6 DATA

Address Publics by Value Rva+Base Lib:Object

0001:00000020 ?Crash@@YAXXZ 00401020 f CrashDemo.obj
0001:00000070 _main 00401070 f CrashDemo.obj
0004:00000000 __IMPORT_DESCRIPTOR_KERNEL32 00424000 kernel32:KERNEL32.dll
0004:00000014 __NULL_IMPORT_DESCRIPTOR 00424014 kernel32:KERNEL32.dll
0004:00000138 __imp__GetCommandLineA@0 00424138 kernel32:KERNEL32.dll
0004:0000013c __imp__GetVersion@0 0042413c kernel32:KERNEL32.dll
0004:00000140 __imp__ExitProcess@4 00424140 kernel32:KERNEL32.dll
0004:00000144 __imp__DebugBreak@0 00424144 kernel32:KERNEL32.dll
0004:00000148 __imp__GetStdHandle@4 00424148 kernel32:KERNEL32.dll
0004:0000014c __imp__WriteFile@20 0042414c kernel32:KERNEL32.dll
0004:00000150 __imp__InterlockedDecrement@4 00424150 kernel32:KERNEL32.dll
0004:00000154 __imp__OutputDebugStringA@4 00424154 kernel32:KERNEL32.dll
0004:00000158 __imp__GetProcAddress@8 00424158 kernel32:KERNEL32.dll
0004:0000015c __imp__LoadLibraryA@4 0042415c kernel32:KERNEL32.dll
0004:00000160 __imp__InterlockedIncrement@4 00424160 kernel32:KERNEL32.dll
0004:00000164 __imp__GetMoleFileNameA@12 00424164 kernel32:KERNEL32.dll
0004:00000168 __imp__TerminateProcess@8 00424168 kernel32:KERNEL32.dll
0004:0000016c __imp__GetCurrentProcess@0 0042416c kernel32:KERNEL32.dll
0004:00000170 __imp__UnhandledExceptionFilter@4 00424170 kernel32:KERNEL32.dll
0004:00000174 __imp__FreeEnvironmentStringsA@4 00424174 kernel32:KERNEL32.dll
0004:00000178 __imp__FreeEnvironmentStringsW@4 00424178 kernel32:KERNEL32.dll
0004:0000017c __imp__WideCharToMultiByte@32 0042417c kernel32:KERNEL32.dll
0004:00000180 __imp__GetEnvironmentStrings@0 00424180 kernel32:KERNEL32.dll
0004:00000184 __imp__GetEnvironmentStringsW@0 00424184 kernel32:KERNEL32.dll
0004:00000188 __imp__SetHandleCount@4 00424188 kernel32:KERNEL32.dll
0004:0000018c __imp__GetFileType@4 0042418c kernel32:KERNEL32.dll
0004:00000190 __imp__GetStartupInfoA@4 00424190 kernel32:KERNEL32.dll
0004:00000194 __imp__HeapDestroy@4 00424194 kernel32:KERNEL32.dll
0004:00000198 __imp__HeapCreate@12 00424198 kernel32:KERNEL32.dll
0004:0000019c __imp__HeapFree@12 0042419c kernel32:KERNEL32.dll
0004:000001a0 __imp__VirtualFree@12 004241a0 kernel32:KERNEL32.dll
0004:000001a4 __imp__RtlUnwind@16 004241a4 kernel32:KERNEL32.dll
0004:000001a8 __imp__GetLastError@0 004241a8 kernel32:KERNEL32.dll
0004:000001ac __imp__SetConsoleCtrlHandler@8 004241ac kernel32:KERNEL32.dll
0004:000001b0 __imp__IsBadWritePtr@8 004241b0 kernel32:KERNEL32.dll
0004:000001b4 __imp__IsBadReadPtr@8 004241b4 kernel32:KERNEL32.dll
0004:000001b8 __imp__HeapValidate@12 004241b8 kernel32:KERNEL32.dll
0004:000001bc __imp__GetCPInfo@8 004241bc kernel32:KERNEL32.dll
0004:000001c0 __imp__GetACP@0 004241c0 kernel32:KERNEL32.dll
0004:000001c4 __imp__GetOEMCP@0 004241c4 kernel32:KERNEL32.dll
0004:000001c8 __imp__HeapAlloc@12 004241c8 kernel32:KERNEL32.dll
0004:000001cc __imp__VirtualAlloc@16 004241cc kernel32:KERNEL32.dll
0004:000001d0 __imp__HeapReAlloc@16 004241d0 kernel32:KERNEL32.dll
0004:000001d4 __imp__MultiByteToWideChar@24 004241d4 kernel32:KERNEL32.dll
0004:000001d8 __imp__LCMapStringA@24 004241d8 kernel32:KERNEL32.dll
0004:000001dc __imp__LCMapStringW@24 004241dc kernel32:KERNEL32.dll
0004:000001e0 __imp__GetStringTypeA@20 004241e0 kernel32:KERNEL32.dll
0004:000001e4 __imp__GetStringTypeW@16 004241e4 kernel32:KERNEL32.dll
0004:000001e8 __imp__SetFilePointer@16 004241e8 kernel32:KERNEL32.dll
0004:000001ec __imp__SetStdHandle@8 004241ec kernel32:KERNEL32.dll
0004:000001f0 __imp__FlushFileBuffers@4 004241f0 kernel32:KERNEL32.dll
0004:000001f4 __imp__CloseHandle@4 004241f4 kernel32:KERNEL32.dll
0004:000001f8 \177KERNEL32_NULL_THUNK_DATA 004241f8 kernel32:KERNEL32.dll

entry point at 0001:000000f0

Line numbers for .\Debug\CrashDemo.obj(d:\msdev\myprojects\crashdemo\crashdemo.cpp) segment .text

13 0001:00000020 14 0001:00000038 15 0001:0000003f 16 0001:00000046
17 0001:00000050 20 0001:00000070 21 0001:00000088 22 0001:0000008d

如果仔細瀏覽 Rva+Base 這欄,你會發現第一個比崩潰地址 0x0040104a 大的函數地址是 0x00401070 ,所以在 0x00401070 這個地址之前的那個入口就是產生崩潰的函數,也就是這行:

0001:00000020 ?Crash@@YAXXZ 00401020 f CrashDemo.obj

因此,發生崩潰的函數就是 ?Crash@@YAXXZ ,所有以問號開頭的函數名稱都是 C++ 修飾的名稱。在我們的源程序中,也就是 Crash() 這個子函數。

OK,現在我們輕而易舉地便知道了發生崩潰的函數名稱,你是不是很興奮呢?呵呵,先別忙,接下來,更厲害的招數要出場了。

請注意 MAP 文件的最後部分--代碼行信息(Line numbers information),它是以這樣的形式顯示的:

13 0001:00000020

第一個數字代表在源代碼中的代碼行號,第二個數是該代碼行在所屬的代碼段中的偏移量。

如果要查找代碼行號,需要使用下面的公式做一些十六進制的減法運算:

崩潰行偏移 = 崩潰地址(Crash Address) - 基地址(ImageBase Address) - 0x1000

為什麼要這樣做呢?細心的朋友可能會留意到 Rva+Base 這欄了,我們得到的崩潰地址都是由 偏移地址(Rva)+ 基地址(Base) 得來的,所以在計算行號的時候要把基地址減去,一般情況下,基地址的值是 0x00400000 。另外,由於一般的 PE 文件的代碼段都是從 0x1000 偏移開始的,所以也必須減去 0x1000 。

好了,明白了這點,我們就可以來進行小學減法計算了:

崩潰行偏移 = 0x0040104a - 0x00400000 - 0x1000 = 0x4a

如果瀏覽 MAP 文件的代碼行信息,會看到不超過計算結果,但卻最接近的數是 CrashDemo.cpp 文件中的:

16 0001:00000046

也就是在源代碼中的第 16 行,讓我們來看看源代碼:

16 i /= j;

哈!!!果然就是第 16 行啊!

興奮嗎?我也一樣! :)

方法已經介紹完了,從今以後,我們就可以精確地定位到源代碼中的崩潰行,而且只要編譯器可以生成 MAP 文件(包括 VC、MASM、VB、BCB、Delphi……),本方法都是適用的。我們時常抱怨 M$ 的產品如何如何差,但其實 M$ 還是有意無意間提供了很多有價值的信息給我們的,只是我們往往不懂得怎麼利用而已……相信這樣一來,你就可以更為從容地面對「非法操作」提示了。你甚至可以要求用戶提供崩潰的地址,然後就可以坐在家中舒舒服服地找到出錯的那行,並進行修正。

⑶ 安全加密技術的演算法的含義是什麼具體有些什麼方法請舉例說明

加密就是對原來為明文的文件或數據按某種演算法進行處理,使其成為不可讀的一段代碼,通常稱為「密文」,使其只能在輸入相應的密鑰之後才能顯示出本來內容,通過這樣的途徑來達到保護數據不被非法人竊取、閱讀的目的。
加密過程的逆過程為解密,即將該密文信息轉化為其原來可讀的明文。
對稱式加密就是加密和解密使用同一個密鑰,通常稱之為「Session Key 」這種加密技術目前被廣泛採用,如美國政府所採用的DES加密標准就是一種典型的「對稱式」加密法,它的Session Key長度為56Bits。
非對稱式加密就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為「公鑰」和「私鑰」,它們兩個必需配對使用,否則不能打開加密文件。這里的「公鑰」是指可以對外公布的,「私鑰」則不能,只能由持有人一個人知道。它的優越性就在這里,因為對稱式的加密方法如果是在網路上傳輸加密文件就很難把密鑰告訴對方,不管用什麼方法都有可能被別竊聽到。而非對稱式的加密方法有兩個密鑰,且其中的「公鑰」是可以公開的,也就不怕別人知道,收件人解密時只要用自己的私鑰即可以,這樣就很好地避免了密鑰的傳輸安全性問題。

⑷ 加密是什麼意思

加密,是以某種特殊的演算法改變原有的信息數據,使得未授權的用戶即使獲得了已加密的信息,但因不知解密的方法,仍然無法了解信息的內容。 在航空學中,指利用航空攝影像片上已知的少數控制點,通過對像片測量和計算的方法在像對或整條航攝帶上增加控制點的作業。

加密之所以安全,絕非因不知道加密解密演算法方法,而是加密的密鑰是絕對的隱藏,現在流行的RSA和AES加密演算法都是完全公開的,一方取得已加密的數據,就算知道加密演算法也好,若沒有加密的密鑰,也不能打開被加密保護的信息。單單隱蔽加密演算法以保護信息,在學界和業界已有相當討論,一般認為是不夠安全的。公開的加密演算法是給黑客和加密家長年累月攻擊測試,對比隱蔽的加密演算法要安全得多。
在密碼學中,加密是將明文信息隱匿起來,使之在缺少特殊信息時不可讀。雖然加密作為通信保密的手段已經存在了幾個世紀,但是,只有那些對安全要求特別高的組織和個人才會使用它。在20世紀70年代中期,強加密(Strong Encryption) 的使用開始從政府保密機構延伸至公共領域, 並且目 前已經成為保護許多廣泛使用系統的方法,比如網際網路電子商務、手機網路和銀行自動取款機等。
加密可以用於保證安全性, 但是其它一些技術在保障通信安全方面仍然是必須的,尤其是關於數據完整性和信息驗證;例如,信息驗證碼(MAC)或者數字簽名。另一方面的考慮是為了應付流量分析。
加密或軟體編碼隱匿(Code Obfuscation)同時也在軟體版權保護中用於對付反向工程,未授權的程序分析,破解和軟體盜版及數位內容的數位版權管理 (DRM)等。
盡管加密或為了安全目的對信息解碼這個概念十分簡單,但在這里仍需對其進行解釋。數據加密的基本過程包括對稱為明文的原來可讀信息進行翻譯,譯成稱為密文或密碼的代碼形式。該過程的逆過程為解密,即將該編碼信息轉化為其原來的形式的過程。

⑸ 數據加密演算法的數據加密標准DES

DES的原始思想可以參照二戰德國的恩尼格瑪機,其基本思想大致相同。傳統的密碼加密都是由古代的循環移位思想而來,恩尼格瑪機在這個基礎之上進行了擴散模糊。但是本質原理都是一樣的。現代DES在二進制級別做著同樣的事:替代模糊,增加分析的難度。 攻擊 DES 的主要形式被稱為蠻力的或窮舉,即重復嘗試各種密鑰直到有一個符合為止。如果 DES 使用 56 位的密鑰,則可能的密鑰數量是 2 的 56 次方個。隨著計算機系統能力的不斷發展,DES 的安全性比它剛出現時會弱得多,然而從非關鍵性質的實際出發,仍可以認為它是足夠的。不過 ,DES 現在僅用於舊系統的鑒定,而更多地選擇新的加密標准 — 高級加密標准(Advanced Encryption Standard,AES)。
新的分析方法有差分分析法和線性分析法兩種 本期Crackme用到MD5及DES兩種加密演算法,難度適中。這次我們重點來看一下DES的加密過程及注冊演算法過程。用調試器載入程序,下GegDlgItemTextA斷點,可以定位到下面代碼,我們先來看一下整個crackme的注冊過程:
由於代碼分析太長,故收錄到光碟中,請大家對照著分析(請見光碟「code1.doc」)
從上面分析可以看出,注冊過程是類似:f(機器碼,注冊碼)式的兩元運算。機器碼是經過md5演算法得到的中間16位值,注冊碼是經過DES解密過程取得16位注冊碼,然後兩者比較,如相等,則注冊成功。機器碼的運算過程可以參照上一期的MD5演算法來理解。下面重點來說一下注冊碼DES的運算過程。
1、密鑰處理過程:一般進行加解密過程都要初始化密鑰處理。我們可以跟進004023FA CALL Crackme1.00401A40這個call,可以看到如下代碼:
…(省略)...
00401A4D LEA ECX,DWORD PTR DS:[ECX]
00401A50 /MOV EDX,EAX
00401A52 |SHR EDX,3
00401A55 |MOV DL,BYTE PTR DS:[EDX+ESI]
00401A58 |MOV CL,AL
00401A5A |AND CL,7
00401A5D |SAR DL,CL
00401A5F |AND DL,1
00401A62 |MOV BYTE PTR DS:[EAX+417DA0],DL
00401A68 |INC EAX
00401A69 |CMP EAX,40這里比較是否小於64
00401A6C JL SHORT Crackme1.00401A50
以上過程就是去掉密鑰各第八位奇偶位。
…(省略)...
00401AB0 |MOV DL,BYTE PTR DS:[ECX+417D9F]
00401AB6 |MOV BYTE PTR DS:[EAX+417BA3],DL
00401ABC |ADD EAX,4
00401ABF |CMP EAX,38這里進行密鑰變換
…(省略)...
00401BFF ||MOVSX ECX,BYTE PTR DS:[EAX+412215]
00401C06 ||MOV CL,BYTE PTR DS:[ECX+417D9F]
00401C0C ||MOV BYTE PTR DS:[EAX+417BA5],CL
00401C12 ||ADD EAX,6
00401C15 ||CMP EAX,30這里產生48位的子密鑰
00401C18 |JL SHORT Crackme1.00401BA0
00401C1A |MOV EAX,DWORD PTR SS:[ESP+14]
00401C1E |MOV EDI,EAX
00401C20 |MOV ECX,0C
00401C25 |MOV ESI,Crackme1.00417BA0
00401C2A |REP MOVS DWORD PTR ES:[EDI],DWORD PTR D>
00401C2C |MOV EDI,DWORD PTR SS:[ESP+10]
00401C30 |ADD EAX,30下一組子密鑰
00401C33 |INC EDI
00401C34 |CMP EAX,Crackme1.00417B90這里進行16次的生成子密鑰過程
00401C39 |MOV DWORD PTR SS:[ESP+10],EDI
…(省略)...
可以看到8位密鑰為:1,9,8,0,9,1,7,0
2、對數據處理的過程,跟進004024C7 CALL Crackme1.00402050,到如下代碼:
00402072 |MOV BYTE PTR DS:[EAX+417E30],DL
00402078 |INC EAX
00402079 |CMP EAX,40這里取得64位數據
0040207C JL SHORT Crackme1.00402060
…(省略)...
004020C6 |MOV BYTE PTR DS:[EAX+417BA3],DL
004020CC |ADD EAX,4
004020CF |CMP EAX,40進行第一次變換
004020D2 JL SHORT Crackme1.00402080
004020D4 MOV AL,BYTE PTR SS:[ESP+20]
004020D8 TEST AL,AL
004020DA MOV ECX,10
…(省略)...
00402191 MOV EBP,DWORD PTR DS:[415094] ; Crackme1.00417E30
00402197 SUB EAX,EBP這里對變換後的數據分為兩部分
00402199 MOV DWORD PTR SS:[ESP+10],EAX
0040219D MOV DWORD PTR SS:[ESP+20],Crackme1.00417B60
004021A5 /MOV EAX,DWORD PTR SS:[ESP+20]
004021A9 |MOV ECX,8
004021AE |MOV ESI,EBP
004021B0 |MOV EDI,Crackme1.00417E10
004021B5 |PUSH EAX這里用上面生成的子密鑰來解密數據
004021B6 |MOV EBX,EBP
…(省略)...
004021FF |SUB EAX,30下一個子密鑰
00402202 |CMP EAX,Crackme1.00417890這里將循環16次,典型的DES加解密過程
00402207 |MOV ECX,8
0040220C |MOV ESI,Crackme1.00417E10
00402211 |REP MOVS DWORD PTR ES:[EDI],DWORD PTR DS:[ESI>
…(省略)...
0040225A |MOV BYTE PTR DS:[EAX+417BA2],DL
00402260 |MOV DL,BYTE PTR DS:[ECX+417E2F]
00402266 |MOV BYTE PTR DS:[EAX+417BA3],DL
0040226C |ADD EAX,4
0040226F |CMP EAX,40這里是未置換
00402272 JL SHORT Crackme1.00402220
00402274 MOV EBP,DWORD PTR SS:[ESP+18]
00402278 MOV ECX,10
0040227D MOV ESI,Crackme1.00417BA0
…(省略)...
有興趣的讀者可以參考DES演算法來理解上面的過程。 一.安全性比較高的一種演算法,目前只有一種方法可以破解該演算法,那就是窮舉法.
二.採用64位密鑰技術,實際只有56位有效,8位用來校驗的.譬如,有這樣的一台PC機器,它能每秒計算一百萬次,那麼256位空間它要窮舉的時間為2285年.所以這種演算法還是比較安全的一種演算法.
TripleDES。該演算法被用來解決使用 DES 技術的 56 位時密鑰日益減弱的強度,其方法是:使用兩個獨立密鑰對明文運行 DES 演算法三次,從而得到 112 位有效密鑰強度。TripleDES 有時稱為 DESede(表示加密、解密和加密這三個階段)。

⑹ 這個加密代碼解開是什麼 意思 下面是代碼這個代碼標準的解開應該是什麼

這不是加密代碼啊大哥....
這不過是一大串的字元串而已,根本沒有你說的加密什麼的..

而且沒有加密演算法,就是加密代碼,也看不出來是什麼東東的

⑺ 加密的標准

最早、最著名的保密密鑰或對稱密鑰加密演算法DES(Data Encryption Standard)是由IBM公司在70年代發展起來的,並經政府的加密標准篩選後,於1976年11月被美國政府採用,DES隨後被美國國家標准局和美國國家標准協會(American National Standard Institute,ANSI)承認。
DES使用56位密鑰對64位的數據塊進行加密,並對64位的數據塊進行16輪編碼。與每輪編碼時,一個48位的每輪密鑰值由56位的完整密鑰得出來。DES用軟體進行解碼需用很長時間,而用硬體解碼速度非常快。幸運的是,當時大多數黑客並沒有足夠的設備製造出這種硬體設備。在1977年,人們估計要耗資兩千萬美元才能建成一個專門計算機用於DES的解密,而且需要12個小時的破解才能得到結果。當時DES被認為是一種十分強大的加密方法。
隨著計算機硬體的速度越來越快,製造一台這樣特殊的機器的花費已經降到了十萬美元左右,而用它來保護十億美元的銀行,那顯然是不夠保險了。另一方面,如果只用它來保護一台普通伺服器,那麼DES確實是一種好的辦法,因為黑客絕不會僅僅為入侵一個伺服器而花那麼多的錢破解DES密文。
另一種非常著名的加密演算法就是RSA了,RSA(Rivest-Shamir-Adleman)演算法是基於大數不可能被質因數分解假設的公鑰體系。簡單地說就是找兩個很大的質數。一個對外公開的為公鑰(Public key) ,另一個不告訴任何人,稱為私鑰(Private key)。這兩個密鑰是互補的,也就是說用公鑰加密的密文可以用私鑰解密,反過來也一樣。
假設用戶甲要寄信給用戶乙,他們互相知道對方的公鑰。甲就用乙的公鑰加密郵件寄出,乙收到後就可以用自己的私鑰解密出甲的原文。由於別人不知道乙的私鑰,所以即使是甲本人也無法解密那封信,這就解決了信件保密的問題。另一方面,由於每個人都知道乙的公鑰,他們都可以給乙發信,那麼乙怎麼確信是不是甲的來信呢?那就要用到基於加密技術的數字簽名了。
甲用自己的私鑰將簽名內容加密,附加在郵件後,再用乙的公鑰將整個郵件加密(注意這里的次序,如果先加密再簽名的話,別人可以將簽名去掉後簽上自己的簽名,從而篡改了簽名)。這樣這份密文被乙收到以後,乙用自己的私鑰將郵件解密,得到甲的原文和數字簽名,然後用甲的公鑰解密簽名,這樣一來就可以確保兩方面的安全了。

⑻ 什麼是高級加密標准

密碼學中的高級加密標准(Advanced Encryption Standard,AES),又稱Rijndael加密法,是美國聯邦政府採用的一種區塊加密標准。這個標准用來替代原先的DES,已經被多方分析且廣為全世界所使用。經過五年的甄選流程,高級加密標准由美國國家標准與技術研究院 (NIST)於2001年11月26日發布於FIPS PUB 197,並在2002年5月26日成為有效的標准。2006年,高級加密標准已然成為對稱密鑰加密中最流行的演算法之一。 該演算法為比利時密碼學家Joan Daemen和Vincent Rijmen所設計,結合兩位作者的名字,以Rijdael之命名之,投稿高級加密標準的甄選流程。(Rijdael的發音近於 "Rhine doll"。)

⑼ 什麼叫密鑰加密,大致可以分為幾類

密鑰出現的格式有多種,如代碼、密碼或其它。最流行的密鑰加密技術是數據加密標准(DES:Data Encryption Standard)。當前使用更多且更為先進的加密演算法是 Triple DES,支持高敏感信息的安全性。密鑰加密中的核心技術是密鑰管理,包括密鑰建立、密鑰存儲、密鑰分配、密鑰取消等等。金融業在標准化密鑰保護和交換的過程中處於主導地位。具體內容在 ANSI X9.17 金融機構密鑰管理(Wholesale)標准中有講解。目前,SKIP(Simple Key management for IP)和 ISAKMP/Oakley 是最流行的密鑰管理技術。 公共密鑰加密可以應用於在信息存儲和交換期間提供私人信息保護。如果用戶想將信息保密保存在自己的硬碟中,那麼他可以通過密鑰使其不對外泄漏。如果用戶想將信息傳輸給另一方,密鑰加密術可以保證即使信息被 3rd 方捕獲,也不可讀,但接收方可以通過預先被告訴或共同協商密鑰成功實現解密過程。 由於每次通信都需要一個密鑰支持,這樣可以增強大型系統的密鑰管理難度,並且使得用戶很難安全傳遞網路密鑰。公共密鑰加密術通常適用於大型系統的信息安全機制,而私人密鑰加密術常適用於小型系統的信息安全機制。

⑽ 首頁源代碼有「加密」字樣是什麼意思

就是被加密軟體加密保護了唄,如果你要打開首先你要有許可權,不然就需要提前揭秘,否則即使你私自帶走源代碼也打不開的。
我們公司用IP-guard和虛擬桌面來保護源文件,IP-guard的加密功能支持各種格式的源代碼,可以對源代碼進行自動加密保護,無需手動操作,不影響既有的操作習慣。
被IP-guard加密保護的源代碼,適用於內部流通、外發、員工出差、伺服器上傳和下載等常見場景。

閱讀全文

與什麼叫加密代碼標准相關的資料

熱點內容
自己購買雲主伺服器推薦 瀏覽:422
個人所得稅java 瀏覽:761
多餘的伺服器滑道還有什麼用 瀏覽:191
pdf劈開合並 瀏覽:28
不能修改的pdf 瀏覽:752
同城公眾源碼 瀏覽:489
一個伺服器2個埠怎麼映射 瀏覽:297
java字元串ascii碼 瀏覽:79
台灣雲伺服器怎麼租伺服器 瀏覽:475
旅遊手機網站源碼 瀏覽:332
android關聯表 瀏覽:945
安卓導航無聲音怎麼維修 瀏覽:332
app怎麼裝視頻 瀏覽:430
安卓系統下的軟體怎麼移到桌面 瀏覽:96
windows拷貝到linux 瀏覽:772
mdr軟體解壓和別人不一樣 瀏覽:904
單片機串列通信有什麼好處 瀏覽:340
游戲開發程序員書籍 瀏覽:860
pdf中圖片修改 瀏覽:288
匯編編譯後 瀏覽:491