導航:首頁 > 文檔加密 > 加密驗證原理

加密驗證原理

發布時間:2022-05-19 01:43:14

❶ 公開密鑰加密及其實現原理

這個網上搜下啊
加密和認證
首先我們需要區分加密和認證這兩個基本概念。

加密是將數據資料加密,使得非法用戶即使取得加密過的資料,也無法獲取正確的資料內容,所以數據加密可以保護數據,防止監聽攻擊。其重點在於數據的安全性。身份認證是用來判斷某個身份的真實性,確認身份後,系統才可以依不同的身份給予不同的許可權。其重點在於用戶的真實性。兩者的側重點是不同的。

公鑰和私鑰
其次我們還要了解公鑰和私鑰的概念和作用。

在現代密碼體制中加密和解密是採用不同的密鑰(公開密鑰),也就是非對稱密鑰密碼系統,每個通信方均需要兩個密鑰,即公鑰和私鑰,這兩把密鑰可以互為加解密。公鑰是公開的,不需要保密,而私鑰是由個人自己持有,並且必須妥善保管和注意保密。

公鑰私鑰的原則:

一個公鑰對應一個私鑰。
密鑰對中,讓大家都知道的是公鑰,不告訴大家,只有自己知道的,是私鑰。
如果用其中一個密鑰加密數據,則只有對應的那個密鑰才可以解密。
如果用其中一個密鑰可以進行解密數據,則該數據必然是對應的那個密鑰進行的加密。
非對稱密鑰密碼的主要應用就是公鑰加密和公鑰認證,而公鑰加密的過程和公鑰認證的過程是不一樣的,下面我就詳細講解一下兩者的區別。

基於公開密鑰的加密過程
比如有兩個用戶Alice和Bob,Alice想把一段明文通過雙鑰加密的技術發送給Bob,Bob有一對公鑰和私鑰,那麼加密解密的過程如下:

Bob將他的公開密鑰傳送給Alice。
Alice用Bob的公開密鑰加密她的消息,然後傳送給Bob。
Bob用他的私人密鑰解密Alice的消息。

❷ 網路安全中加密和解密的原理是什麼

簡單的說就是你的數據(明文)通過一種演算法+加密密鑰(密文),然後傳輸給另一方,另一方收到後用同樣的演算法+解密密鑰(等同你的加密密鑰)將你的密文解密。目前用的演算法:哈希,MD5,SHA等。

❸ 加密的原理

加密的原理就是在固定的函數公式(加密格式)配合動態的參數(密碼)從而改變數據存儲的格式

❹ 我們單位電腦被加密了,我想知道是什麼原理,具體內容如下:

http://wenku..com/view/710dc75abe23482fb4da4cd0.html

是不是採用了windows的NTFS文件系統自帶的加密方法。當文件要發到外面要經過專人解密,解密的時候其實是用了恢復代理。
Windows2000/XP/2003操作系統集成了EFS(Encryption File System-EFS)加密功能,可以方便地加密NTFS分區上的文件和文件夾。因為無需安裝第三方加密軟體,方便簡單,所以很多用戶都使用此功能加密重要的文件資料。本節將詳細介紹EFS加密功能的使用以及忘記密鑰之後文件的恢復。

一、EFS加密的原理

Windows2000/XP/2003操作系統都配備了EFS(加密檔案系統)功能,EFS可以幫助用戶針對存儲在NTFS磁碟分區上的文件和文件夾執行加密操作,如果硬碟上的文件已經使用了EFS進行加密,那麼,既使其他用戶可以查看到硬碟上的文件,但是由於沒有解密的密鑰,文件也是不能打開從而無法使用的。

EFS加密基於公鑰策略,在使用EFS加密一個文件或文件夾時,系統首先會生成一個由偽隨機數組成的FEK(文件加密鑰匙),然後利用FEK和數據擴展標准X演算法創建加密後的文件,並把它存儲到硬碟上,同時刪除未加密的原始文件。接下來系統利用用戶的公鑰加密FEK,並把加密後的FEK存儲在同一個加密文件中。而在訪問被加密的文件時,系統首先利用當前用戶的私鑰解密FEK,然後利用FEK解密出文件。在首次使用EFS時,如果用戶還沒有公鑰/私鑰對(統稱為密鑰)則會首先生成密鑰,然後加密數據。如果用戶登錄到了域環境中,密鑰的生成依賴於域控制器,否則它就依賴於本地機器。

說起來EFS加密非常復雜,其實在實際使用過程中就沒有那麼麻煩了。EFS加密的用戶驗證過程是在登錄Windows時進行的,只以登錄到Windows,就可以打開任何一個被授權的加密文件。換句話說,EFS加密系統對用戶是透明的。這也就是說,如果用戶加密了一些數據,那麼用戶自己對這些數據的訪問將是完全允許的,並不會受到任何限制。而其他非授權用戶試圖訪問加密過的數據時,則會收到「訪問拒絕」的錯誤提示。

二、EFS加密的使用辦法

EFS加密功能的實現非常簡單,但是要注意兩點:1、要保證你所使用的是Windows2000/XP/2003及以上的系統;2、要保證所加密的文件位於NTFS分區上(可以用covert 盤符/FS:NTFS命令把格式輪換過來)。

在Windows圖形界面下,右擊某文件或文件夾,選「屬性」,在打開的「對話框」中選擇「常規」標簽中的「高級」按鈕,勾選「加密內容以便保護數據」項,點確定即可。

在DOS狀態下,可以使用CIPHER命令加、解密文件,格式為:

CIPHER /E 盤符:文件或文件夾(加密)CIPHER /D? 盤符:文件或文件夾(解密)

如果不想讓加密的文件以綠色顯示,可以在「文件夾選項」對話框中「查看」標簽中取消「用彩色顯示加密或壓縮的NTFS文件」。

?

三、EFS加密的破解

使用Advanced EFS Data Recovery軟體。

先安裝好程序,不要運用程序再安裝補丁。

使用方法簡介:

1、首先掃描所以系統分區,自動獲取Key,凡是出現的綠色Key,均為可用的;

2、掃描結束後單擊「File tree」標簽,找到要解密的文件,添加到列表中;

3、單擊「Encrypted files」標簽,選擇要解密的文件(紅色的不能解密,因無合適的Key),然後單擊「Decrypt」按鈕;

選擇合適的存放解密後文件的位置,即開始解密。

❺ 請根據所學知識,談談信息加密和身份認證的原理是怎樣的

信息加密和身份認證的原理,我的不同行業的原理應該也不相同,比如說我是學習軟體的,那麼,我們在設計軟體或者設計網站過程中,我們所認為的這種加密和,身份認證主要就是靠一些關鍵字詞,只有這些關鍵字才能觸發褚健,引起相應鏈接的跳轉。比如說我們在網站設置登錄名和密碼的時候,這個主要就是靠資料庫的存儲,也就如果申請的話,這些數據就能夠存到資料庫里,他下次再登錄,如果能在資料庫中找到對應的用戶名和密碼的時候,那他錄成功,如果不可以,那這個,就沒有辦法登錄

❻ 數字簽名的加密方式是怎樣的原理

數字簽名(又稱公鑰數字簽名、電子簽章)是一種類似寫在紙上的普通的物理簽名,但是使用了公鑰加密領域的技術實現,用於鑒別數字信息的方法。一套數字簽名通常定義兩種互補的運算,一個用於簽名,另一個用於驗證。

每個人都有一對「鑰匙」(數字身份),其中一個只有她/他本人知道(密鑰),另一個公開的(公鑰)。簽名的時候用密鑰,驗證簽名的時候用公鑰。又因為任何人都可以落款聲稱她/他就是你,因此公鑰必須向接受者信任的人(身份認證機構)來注冊。注冊後身份認證機構給你發一數字證書。對文件簽名後,你把此數字證書連同文件及簽名一起發給接受者,接受者向身份認證機構求證是否真地是用你的密鑰簽發的文件。

公鑰加密系統允許任何人在發送信息時使用公鑰進行加密,數字簽名能夠讓信息接收者確認發送者的身份。當然,接收者不可能百分之百確信發送者的真實身份,而只能在密碼系統未被破譯的情況下才有理由確信。

php CRYPT實現密碼驗證原理是什麼

<!--check_user_crypt.php:使用crypt() 函數驗證用戶---------------->

<?php

$user_name=$_POST["user_name"];

require_once("sys_conf.inc"); //系統配置文件,包含資料庫配置信息

//連接資料庫

$link_id=mysql_connect($DBHOST,$DBUSER,$DBPWD);

mysql_select_db($DBNAME); //選擇資料庫my_chat

//查詢是否存在登錄用戶信息

$str="select name,password from user where name ='$user_name'";

$result=mysql_query($str,$link_id); //執行查詢

@$rows=mysql_num_rows($result); //取得查詢結果的記錄筆數

$user_name=$_SESSION["user_name"];

$password=$_POST["password"];

$salt = substr($password, 0, 2);

$password_en=crypt($password,$salt); //使用crypt()對用戶密碼進行加密

//對於老用戶

if($rows!=0)

{

list($name,$pwd)=mysql_fetch_row($result);

//如果密碼輸入正確

if($pwd==$password_en)

{

$str="update user set is_online =1 where name ='$user_name' and password='$password_en'";

$result=mysql_query($str, $link_id);//執行查詢

require("main.php"); //轉到聊天頁面

}

//密碼輸入錯誤

else

{

require("relogin.php");

}

}

//對於新用戶,將其信息寫入資料庫

else

{

$str="insert into user (name,password,is_online) values('$user_ name','$password_en',1)";

$result=mysql_query($str, $link_id); //執行查詢

require("main.php"); //轉到聊天頁面

}

//關閉資料庫

mysql_close($link_id);

?>

上面就實現了一個簡單的用戶身份驗證系統。在使用crypt()保護重要的機密信息時,需要注意的是,在預設狀態下使用crypt()並不是最安全的,只能用在對安全性要求較低的系統中。

更多問題到後盾網問題求助專區。

❽ SSL工作原理,SSL加密原理,SSL證書怎麼加密

TLS/SSL的功能實現主要依賴於三類基本演算法:散列函數 Hash、對稱加密和非對稱加密,其利用非對稱加密實現身份認證和密鑰協商,對稱加密演算法採用協商的密鑰對數據加密,基於散列函數驗證信息的完整性。

❾ RAR加密原理

RAR使用AES-256-CBC加密。其原理是在通信過程中,數據發送方將原始數據分割成固定大小的塊,經過密鑰和加密演算法逐個加密後,發送給接收方;接收方收到加密後的報文後,結合密鑰和解密演算法解密組合後得出原始數據。

其優點在於加解密的高速度和使用長密鑰時的難破解性。假設兩個用戶需要使用對稱加密方法加密然後交換數據,則用戶最少需要2個密鑰並交換使用,如果企業內用戶有n個,則整個企業共需要n×(n-1) 個密鑰。

(9)加密驗證原理擴展閱讀

RAR開發者為尤金·羅謝爾,RAR的全名是「RoshalARchive」,即「羅謝爾的歸檔」之意。首個公開版本RAR 1.3發布於1993年。

他開發程序壓縮或解壓RAR文件,最初用於DOS,後來移植到其它平台。主要的Windows版本編碼器,稱為WinRAR,以共享軟體的形式發行。不過羅謝爾公開了解碼器源碼,UnRAR解碼器許可證以不許發布編譯RAR兼容編碼器為條件下允許有條件自由發布與修改,而RAR編碼器一直是有專利的。

❿ 序列號保護加密的原理和驗證方法

(1)序列號保護機制

數學演算法一項都是密碼加密的核心,但在一般的軟體加密中,它似乎並不太為人們關心,因為大多數時候軟體加密本身實現的都是一種編程的技巧。但近幾年來隨著序列號加密程序的普及,數學演算法在軟體加密中的比重似乎是越來越大了。
我們先來看看在網路上大行其道的序列號加密的工作原理。當用戶從網路上下載某個shareware——共享軟體後,一般都有使用時間上的限制,當過了共享軟體的試用期後,你必須到這個軟體的公司去注冊後方能繼續使用。注冊過程一般是用戶把自己的私人信息(一般主要指名字)連同信用卡號碼告訴給軟體公司,軟體公司會根據用戶的信息計算出一個序列碼,在用戶得到這個序列碼後,按照注冊需要的步驟在軟體中輸入注冊信息和注冊碼,其注冊信息的合法性由軟體驗證通過後,軟體就會取消掉本身的各種限制,這種加密實現起來比較簡單,不需要額外的成本,用戶購買也非常方便,在互聯網上的軟體80%都是以這種方式來保護的。
我們注意到軟體驗證序列號的合法性過程,其實就是驗證用戶名和序列號之間的換算關系是否正確的過程。其驗證最基本的有兩種,一種是按用戶輸入的姓名來生成注冊碼,再同用戶輸入的注冊碼比較,公式表示如下:
序列號 = F(用戶名)
但這種方法等於在用戶軟體中再現了軟體公司生成注冊碼的過程,實際上是非常不安全的,不論其換算過程多麼復雜,解密者只需把你的換算過程從程序中提取出來就可以編制一個通用的注冊程序。

另外一種是通過注冊碼來驗證用戶名的正確性,公式表示如下:
用戶名稱 = F逆(序列號) (如ACDSEE,小樓注)
這其實是軟體公司注冊碼計算過程的反演算法,如果正向演算法與反向演算法不是對稱演算法的話,對於解密者來說,的確有些困難,但這種演算法相當不好設計。

於是有人考慮到一下的演算法:
F1(用戶名稱) = F2(序列號)
F1、F2是兩種完全不同的的演算法,但用戶名通過F1演算法的計算出的特徵字等於序列號通過F2演算法計算出的特徵字,這種演算法在設計上比較簡單,保密性相對以上兩種演算法也要好的多。如果能夠把F1、F2演算法設計成不可逆演算法的話,保密性相當的好;可一旦解密者找到其中之一的反演算法的話,這種演算法就不安全了。一元演算法的設計看來再如何努力也很難有太大的突破,那麼二元呢?

特定值 = F(用戶名,序列號)
這個演算法看上去相當不錯,用戶名稱與序列號之間的關系不再那麼清晰了,但同時也失去了用戶名於序列號的一一對應關系,軟體開發者必須自己維護用戶名稱與序列號之間的唯一性,但這似乎不是難以辦到的事,建個資料庫就好了。當然你也可以根據這一思路把用戶名稱和序列號分為幾個部分來構造多元的演算法。
特定值 = F(用戶名1,用戶名2,...序列號1,序列號2...)

現有的序列號加密演算法大多是軟體開發者自行設計的,大部分相當簡單。而且有些演算法作者雖然下了很大的功夫,效果卻往往得不到它所希望的結果。其實現在有很多現成的加密演算法可以用,如RSADES,MD4,MD5,只不過這些演算法是為了加密密文或密碼用的,於序列號加密多少有些不同。我在這里試舉一例,希望有拋磚引玉的作用:
1、在軟體程序中有一段加密過的密文S
2、密鑰 = F(用戶名、序列號) 用上面的二元演算法得到密鑰
3、明文D = F-DES(密文S、密鑰) 用得到的密鑰來解密密文得到明文D
4、CRC = F-CRC(明文D) 對得到的明文應用各種CRC統計
5、檢查CRC是否正確。最好多設計幾種CRC演算法,檢查多個CRC結果是否都正確
用這種方法,在沒有一個已知正確的序列號情況下是永遠推算不出正確的序列號的。

(2)如何攻擊序列號保護

要找到序列號,或者修改掉判斷序列號之後的跳轉指令,最重要的是要利用各種工具定位判斷序列號的代碼段。這些常用的API包括GetDlgItemInt, GetDlgItemTextA, GetTabbedTextExtentA, GetWindowTextA, Hmemcpy (僅僅Windows 9x), lstrcmp, lstrlen, memcpy (限於NT/2000)。

1)數據約束性的秘訣
這個概念是+ORC提出的,只限於用明文比較注冊碼的那種保護方式。在大多數序列號保護的程序中,那個真正的、正確的注冊碼或密碼(Password)會於某個時刻出現在內存中,當然它出現的位置是不定的,但多數情況下它會在一個范圍之內,即存放用戶輸入序列號的內存地址±0X90位元組的地方。這是由於加密者所用工具內部的一個Windows數據傳輸的約束條件決定的。

2)Hmemcpy函數(俗稱萬能斷點)
函數Hmemcpy是Windows9x系統的內部函數,位於KERNEL32.DLL中,它的作用是將內存中的一塊數據拷貝到另一個地方。由於Windows9x系統頻繁使用該函數處理各種字串,因此用它作為斷點很實用,它是Windows9x平台最常用的斷點。在Windows NT/2K中沒有這個斷點,因為其內核和Windows9x完全不同。

3)S命令
由於S命令忽略不在內存中的頁面,因此你可以使用32位平面地址數據段描述符30h在整個4GB(0~FFFFFFFFh )空間查找,一般用在Windows9x下面。具體步驟為:先輸入姓名或假的序列號(如: 78787878),按Ctrl+D切換到SoftICE下,下搜索命令:
s 30:0 L ffffffff '78787878'
會搜索出地址:ss:ssssssss(這些地址可能不止一個),然後用bpm斷點監視搜索到的假注冊碼,跟蹤一下程序如何處理輸入的序列號,就有可能找到正確的序列號。

4)利用消息斷點
在處理字串方面可以利用消息斷點WM_GETTEXT和WM_COMMAND。前者用來讀取某個控制項中的文本,比如拷貝編輯窗口中的序列號到程序提供的一個緩沖區里;後者則是用來通知某個控制項的父窗口的,比如當輸入序列號之後點擊OK按鈕,則該按鈕的父窗口將收到一個WM_COMMAND消息,以表明該按鈕被點擊。
BMSG xxxx WM_GETTEXT (攔截序列號)
BMSG xxxx WM_COMMAND (攔截OK按鈕)
可以用SoftICE提供的HWND命令獲得窗口句柄的信息,也可以利用Visual Studio中的Spy++實用工具得到相應窗口的句柄值,然後用BMSG設斷點攔截。例:
BMSG 0129 WM_COMMAND

閱讀全文

與加密驗證原理相關的資料

熱點內容
卡爾曼濾波演算法書籍 瀏覽:768
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:843
安卓怎麼下載60秒生存 瀏覽:802
外向式文件夾 瀏覽:239
dospdf 瀏覽:430
怎麼修改騰訊雲伺服器ip 瀏覽:391
pdftoeps 瀏覽:495
為什麼鴻蒙那麼像安卓 瀏覽:735
安卓手機怎麼拍自媒體視頻 瀏覽:185
單片機各個中斷的初始化 瀏覽:723
python怎麼集合元素 瀏覽:480
python逐條解讀 瀏覽:832
基於單片機的濕度控制 瀏覽:498
ios如何使用安卓的帳號 瀏覽:882
程序員公園采訪 瀏覽:811
程序員實戰教程要多長時間 瀏覽:976
企業數據加密技巧 瀏覽:134
租雲伺服器開發 瀏覽:813
程序員告白媽媽不同意 瀏覽:335
攻城掠地怎麼查看伺服器 瀏覽:600