常用的加密演算法

2021-08-07 16:07:36 字數 2725 閱讀 2245

一。摘要演算法

1》md5演算法(message digest algorithm 5) 可以保證資料傳輸完整性和一致性 摘要後長度為16位元組 摘要資訊中不包含原文資訊

所有加密結果不可逆(無法解密) 一般在傳送檔案時 對原始檔進行md5 hash 傳送到對方後 檢測hash值是否相等 如果相等檔案傳輸正確

如果不相等 說明檔案被篡改(加入木馬)或者未傳送完成

其他md演算法 md2(16位元組)

[html]view plain

copy

public static void main(string args) throws nosuchalgorithmexception   

2》sha演算法secure hash algorithm(安全hash演算法) 安全雜湊演算法(hash函式 將原始資訊壓縮 返回雜湊值)可以是sha-1,sha1是目前最安全

的摘要演算法 摘要的長度為 20位元組 

其他的sha 包括 sha-256(32位元組)

[html]view plain

copy

public static void main(string args) throws nosuchalgorithmexception   

二。編碼和解碼

1》16進製制 編碼  計算機系統使用 2進製 為了編寫儲存方便一般將2進製 轉換為16進製制字串 其中base64也是其中類似轉換一種 16進製制編碼和base64都是

可逆的 一般用於儲存

[html]view plain

copy

public static byte tobyte(string src)else  

baos.write(srcb);  

}  return baos.tobytearray();  

}  public static string tohex(byte src)  

}  return sb.tostring();  

}  

2》base64編碼  用於將位元組陣列和字串互相轉換

[html]view plain

copy

public static void main(string args) throws nosuchalgorithmexception, ioexception   

三。對稱加密

1》des演算法 (data encryptin standard) 是對稱加密演算法的一種 使用秘鑰加解密  秘鑰必須是56位元組  

概念解釋:

秘鑰 :用於加密和解密的鑰匙  秘鑰可以使用 getencoded方法 獲取byte 儲存在檔案系統中

公鑰和私鑰:用於非對稱加密的鑰匙 公鑰加密 私鑰解密  私鑰一般用於解密所以私鑰一般儲存在金鑰庫中

口令:一般是自定義的字串  可以通過口令和鹽生成秘鑰 

[html]view plain

copy

/**  

* 生成56位元組的秘鑰  

*/  

public static secretkey genkey(int len) throws nosuchalgorithmexception  

public static void main(string args) throws exception   

2》aes演算法 (advanced encryptin standard 高階加密標準) 是對稱加密演算法一種公升級 因為 56位秘鑰 在計算機系統效能越來越高的前提下 56位很容易被

破解 所以 aes將秘鑰的長度提高到128, 192 or 256  必須是這三個數 128預設可以使用  192和256由於美國限制 需要相關授權 否則丟擲異常

[html]view plain

copy

public static final string al=

"aes"

;  /**  

* 生成56位元組的秘鑰  

*/  

public static secretkey genkey(int len) throws nosuchalgorithmexception  

public static void main(string args) throws exception {  

//secretkey sk

=new

secretkeyspec(kl.getbytes(), "des");  

secretkey sk

=genkey

(128);  

//---------加密  

string password

="tiger"

;  cipher cipher

=cipher

.getinstance(al);  

cipher.init(cipher.encrypt_mode, sk);  

//被加密之後獲取的位元組陣列  

byte mcontent

=cipher

.dofinal(password.getbytes());  

//---------解密  

cipher cipher1

=cipher

常用加密演算法

常用加密演算法 des data encryption standard 對稱演算法,資料加密標準,速度較快,適用於加密大量資料的場合 3des triple des 是基於des的對稱演算法,對一塊資料用三個不同的金鑰進行三次加密,強度更高 rc2和rc4 對稱演算法,用變長金鑰對大量資料進行加密...

常用加密演算法

平時經常會遇到一些加密解密之類的處理,特編寫成乙個專門的類,以後只需要呼叫即可!用法很簡單,例項化類之後呼叫相關方法就行!會對應返回加密解密後的字串!using system using system.collections.generic using system.text using syste...

常用加密演算法

一 對稱性加密演算法 aes,des,3des des是一種分組資料加密技術 先將資料分成固定長度的小資料塊,之後進行加密 速度較快,適用於大量資料加密,而3des是一種基於des的加密演算法,使用3個不同密匙對同乙個分組資料塊進行3次加密,如此以使得密 度更高。相較於des和3des演算法而言,a...