常用的資料加密方式

2021-07-22 18:59:42 字數 4157 閱讀 4497

常用加密方式

base64

sha1(secure hash algorithm) (非對稱加密)

sha256(

非對稱加密

)sha512(

非對稱加密

)md5(message digest algorithm 5)(

非對稱加密

)rsa(

非對稱加密

)des(data encryption standard)(對稱加密)

3des(triple des)(

對稱加密

)aes(advanced encryption standard)(

對稱加密)

.net 資料加密演算法

加密將防止資料被檢視或修改,並在原本不安全的通道上提供安全的通訊通道,它達到以下目的:

·        保密性:防止使用者的標識或資料被讀取。

·        資料完整性:防止資料被更改。

·        身份驗證:確保資料發自特定的一方。

一、資料加密/編碼演算法列表

常見用於保證安全的加密或編碼演算法如下:

1、常用金鑰演算法

金鑰演算法用來對敏感資料、摘要、簽名等資訊進行加密,常用的金鑰演算法包括:

·des(dataencryption standard):資料加密標準,速度較快,適用於加密大量資料的場合;

·3des(tripledes):是基於des,對一塊資料用三個不同的金鑰進行三次加密,強度更高;

·rc2和 rc4:用變長金鑰對大量資料進行加密,比des 快;

·idea(internationaldata encryption algorithm)國際資料加密演算法,使用128 位金鑰提供非常強的安全性;

·rsa:由rsa 公司發明,是乙個支援變長金鑰的公共金鑰演算法,需要加密的檔案快的長度也是可變的;

·dsa(digitalsignature algorithm):數字簽名演算法,是一種標準的dss(數字簽名標準);

·aes(advancedencryption standard):高階加密標準,是下一代的加密演算法標準,速度快,安全級別高,目前aes 標準的乙個實現是rijndael 演算法;

·blowfish,它使用變長的金鑰,長度可達448位,執行速度很快;

·        其它演算法,如elgamal、deffie-hellman、新型橢圓曲線演算法ecc等。

2、單向雜湊演算法

單向雜湊函式一般用於產生訊息摘要,金鑰加密等,常見的有:

·md5(messagedigest algorithm 5):是rsa資料安全公司開發的一種單向雜湊演算法,md5被廣泛使用,可以用來把不同長度的資料塊進行暗碼運算成乙個128位的數值;

·sha(securehash algorithm)這是一種較新的雜湊演算法,可以對任意長度的資料運算生成乙個160位的數值;

·mac(messageauthentication code):訊息認證**,是一種使用金鑰的單向函式,可以用它們在系統上或使用者之間認證檔案或訊息。hmac(用於訊息認證的金鑰雜湊法)就是這種函式的乙個例子。

·crc(cyclicredundancy check):迴圈冗餘校驗碼,crc校驗由於實現簡單,檢錯能力強,被廣泛使用在各種資料校驗應用中。占用系統資源少,用軟硬體均能實現,是進行資料傳 輸差錯檢測地一種很好的手段(crc並不是嚴格意義上的雜湊演算法,但它的作用與雜湊演算法大致相同,所以歸於此類)。

3、其它資料演算法

其它資料演算法包括一些常用編碼演算法及其與明文(ascii、unicode等)轉換等,如base 64quoted printableebcdic等。

二、演算法的.net 實現

常見的加密和編碼演算法都已經在.net framework中得到了實現,為編碼人員提供了極大的便利性,實現這些演算法的命名空間是:system.security.cryptography。

system.security.cryptography命名空間提供加密服務,包括安全的資料編碼和解碼,以及許多其他操作,例如雜湊法、隨機數字生成和訊息身份驗證。

system.security.cryptography是按如下方式組織的:

1、私鑰加密

私鑰加密又稱為對稱加密,因為同一金鑰既用於加密又用於解密。私鑰加密演算法非常快(與公鑰演算法相比),特別適用於對較大的資料流執行加密轉換。

.netframework 提供以下實現私鑰加密演算法的類:

·des:descryptoserviceprovider

·rc2:rc2cryptoserviceprovider

·rijndael(aes):rijndaelmanaged

·3des:tripledescryptoserviceprovider

2、公鑰加密和數字簽名

公鑰加密使用乙個必須對未經授權的使用者保密的私鑰和乙個可以對任何人公開的公鑰。用公鑰加密的資料只能用私鑰解密,而用私鑰簽名的資料只能用公鑰驗證。公鑰可以被任何人使用;該金鑰用於加密要傳送到私鑰持有者的資料。兩個金鑰對於通訊會話都是唯一的。公鑰加密演算法也稱為不對稱演算法,原因是需要用乙個金鑰加密資料而需要用另乙個金鑰來解密資料。

.netframework 提供以下實現公鑰加密演算法的類:

·dsa:dsacryptoserviceprovider

·rsa:rsacryptoserviceprovider

3、雜湊(hash)值

雜湊演算法將任意長度的二進位制值對映為固定長度的較小二進位制值,這個小的二進位制值稱為雜湊值。雜湊值是一 段資料唯一且極其緊湊的數值表示形式。如果雜湊一段明文而且哪怕只更改該段落的乙個字母,隨後的雜湊都將產生不同的值。要找到雜湊為同乙個值的兩個不同的 輸入,在計算上是不可能的,所以資料的雜湊值可以檢驗資料的完整性。

.netframework 提供以下實現數字簽名演算法的類:

·hmac:hmacsha1(hmac 為一種使用金鑰的hash 演算法)

·mac:mactripledes

·md5:md5cryptoserviceprovider

·sha1:sha1managed、sha256managed、sha384managed、sha512managed

4、隨機數生成

加密金鑰需要盡可能地隨機,以便使生成的金鑰很難再現,所以隨機數生成是許多加密操作不可分割的組成部分。

在.net framework 中,rngcryptoserviceprovider是隨機數生成器演算法的實現,對於資料演算法,.netframework 則在其它命名空間中實現,如convert 類實現base 64 編碼,system.text來實現編碼方式的轉換等。

從以上來看,

.net framework

對於資料加密

/編碼還是支援比較好,大大地方便了開發人員,但美中不足的是,

.net framework

中的資料加密演算法仍然不夠完全,如

idea

、blowfish

、其它演算法,如

elgamal

、deffie-hellman

、ecc

等,對於一些其它的資料校驗演算法支援也不夠,如

crc、

sfv

等,開發人員只能去從早期**做移植或者尋找第三方廠商的實現。

iOS常用的加密方式

md5 ios 加密 建立md5類,如下 import inte ce cjmd5 nsobject nsstring md5hexdigest nsstring input end import cjmd5.h import implementation cjmd5 nsstring md5hex...

加密lob資料 加密lob資料的方式 加密的語法

加密lob資料 1oracle可以對lob物件資料進行加密,包含blob,clob,nclob 2bfile型別不能進行加密,因為該型別儲存的是檔案的指標位址,實際檔案在資料庫外 加密lob資料的方式 3des168 密碼長度為168位元的三重資料加密標準演算法.aes128 密碼長度為128位元的...

常用的加密方式學習筆記

1.base64 1.1 實現方式 private static string srctest demo test test public void testbase64 throws ioexception 1.2 測試結果 2.aes對稱加密 2.1 應用場景 2.2 具體實現 test pub...