自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

概述VB.NET加密經(jīng)驗(yàn)總結(jié)

開發(fā) 后端
這里介紹常見的VB.NET加密和編碼算法都已經(jīng)在 .NET Framework中得到了實(shí)現(xiàn),為編碼人員提供了極大的便利性,實(shí)現(xiàn)這些算法的名稱空間。

VB.NET有很多值得學(xué)習(xí)的地方,這里我們主要介紹VB.NET加密,包括介紹公鑰加密和數(shù)字簽名等方面。

常見的VB.NET加密和編碼算法都已經(jīng)在 .NET Framework中得到了實(shí)現(xiàn),為編碼人員提供了極大的便利性,實(shí)現(xiàn)這些算法的名稱空間是:System.Security.Cryptography.System.Security.Cryptography命名空間提供VB.NET加密服務(wù),包括安全的數(shù)據(jù)編碼和解碼,以及許多其他操作,例如散列法、隨機(jī)數(shù)字生成和消息身份驗(yàn)證。System.Security.Cryptography是按如下方式組織的:

1、私鑰加密

私鑰加密又稱為對稱加密,因?yàn)橥幻荑€既用于加密又用于解密。私鑰加密算法非??欤ㄅc公鑰算法相比),特別適用于對較大的數(shù)據(jù)流執(zhí)行加密轉(zhuǎn)換。

.NET Framework 提供以下實(shí)現(xiàn)私鑰加密算法的類:

◆DES:DESCryptoServiceProvider
◆RC2:RC2CryptoServiceProvider
◆Rijndael(AES):RijndaelManaged
◆3DES:TripleDESCryptoServiceProvider

2、公鑰加密和數(shù)字簽名

公鑰加密使用一個必須對未經(jīng)授權(quán)的用戶保密的私鑰和一個可以對任何人公開的公鑰。用公鑰加密的數(shù)據(jù)只能用私鑰解密,而用私鑰簽名的數(shù)據(jù)只能用公鑰驗(yàn)證。公鑰可以被任何人使用;該密鑰用于加密要發(fā)送到私鑰持有者的數(shù)據(jù)。兩個密鑰對于通信會話都是***的。公鑰加密算法也稱為不對稱算法,原因是需要用一個密鑰加密數(shù)據(jù)而需要用另一個密鑰來解密數(shù)據(jù)。

.NET Framework 提供以下實(shí)現(xiàn)公鑰加密算法的類:

◆DSA:DSACryptoServiceProvider
◆RSA:RSACryptoServiceProvider

3、哈希(Hash)值

哈希算法將任意長度的二進(jìn)制值映射為固定長度的較小二進(jìn)制值,這個小的二進(jìn)制值稱為哈希值。哈希值是一段數(shù)據(jù)***且極其緊湊的數(shù)值表示形式。如果散列一段明文而且哪怕只更改該段落的一個字母,隨后的哈希都將產(chǎn)生不同的值。要找到散列為同一個值的兩個不同的輸入,在計(jì)算上是不可能的,所以數(shù)據(jù)的哈希值可以檢驗(yàn)數(shù)據(jù)的完整性。

.NET Framework 提供以下實(shí)現(xiàn)數(shù)字簽名算法的類:

◆HMAC:HMACSHA1 (HMAC 為一種使用密鑰的 Hash 算法)
◆MAC:MACTripleDES
◆MD5:MD5CryptoServiceProvider
◆SHA1:SHA1Managed、SHA256Managed、SHA384Managed、SHA512Managed

4、隨機(jī)數(shù)生成

VB.NET加密密鑰需要盡可能地隨機(jī),以便使生成的密鑰很難再現(xiàn),所以隨機(jī)數(shù)生成是許多加密操作不可分割的組成部分。

在 .NET Framework 中,RNGCryptoServiceProvider 是隨機(jī)數(shù)生成器算法的實(shí)現(xiàn),對于數(shù)據(jù)算法,.NET Framework 則在其它命名空間中實(shí)現(xiàn),如 Convert 類實(shí)現(xiàn) Base 64 編碼,System.Text 來實(shí)現(xiàn)編碼方式的轉(zhuǎn)換等。

簡單的例程:首先需要引用命名空間System.Security.Cryptography

MD5加密:

  1. Dim md5 As MD5CryptoServiceProvider  
  2. Dim bytValue() As Byte '要進(jìn)行加密的字節(jié)數(shù)組  
  3. Dim bytHash() As Byte '加密后生成的字節(jié)數(shù)組  
  4. Dim result As String  
  5. md5 = New MD5CryptoServiceProvider  
  6. ' 將原始字符串轉(zhuǎn)換成字節(jié)數(shù)組  
  7. bytValue = System.Text.Encoding.UTF8.GetBytes(cpuid)  
  8. ' 計(jì)算散列,并返回一個字節(jié)數(shù)組  
  9. bytHash = md5.ComputeHash(bytValue)  
  10. md5.Clear()  
  11. ' 字節(jié)數(shù)組轉(zhuǎn)換成字符串  
  12. result=Convert.ToBase64String(bytHash) 

其他的也是類似的!可以自己去嘗試下的!

從以上來看,.NET Framework 對于數(shù)據(jù)加密/編碼還是支持比較好,大大地方便了開發(fā)人員,但美中不足的是,.NET Framework 中的數(shù)據(jù)加密算法仍然不夠完全,如 IDEA、BLOWFISH、其它算法,如ElGamal、Deffie-Hellman、ECC 等,對于一些其它的數(shù)據(jù)校驗(yàn)算法支持也不夠,如 CRC、SFV 等,開發(fā)人員只能去從早期代碼做移植或者尋找第三方廠商的實(shí)現(xiàn)。

【編輯推薦】

  1. 概括VB.NET Environment類
  2. 淺談VB.NET調(diào)用Web Service
  3. 詳細(xì)描述VB.NET Web服務(wù)
  4. VB.NET名字空間學(xué)習(xí)筆記
  5. 淺析VB.NET使用DrawString方法
責(zé)任編輯:佚名 來源: 博客園
相關(guān)推薦

2009-10-26 14:18:46

2009-10-15 13:06:12

VB.NET Shar

2010-01-21 14:49:44

VB.NET操作Wor

2009-10-15 17:57:33

VB.NET List

2009-10-16 18:01:06

VB.NET調(diào)用Win

2010-01-12 16:44:53

VB.NET數(shù)組

2010-01-19 18:52:08

VB.NET處理數(shù)據(jù)行

2010-01-14 11:09:35

VB.NET文本框

2010-01-14 16:14:15

VB.NET界面設(shè)計(jì)

2009-10-16 13:30:51

VB.NET水晶報(bào)表控

2010-01-20 15:01:26

VB.NET組件顯示時(shí)

2010-01-15 18:50:25

VB.NET資源文件

2010-01-14 19:09:02

VB.NET動態(tài)標(biāo)題

2010-01-08 14:27:28

VB.NET屬性生成器

2009-10-26 13:46:31

VB.NET注冊表權(quán)限

2010-01-18 16:49:36

VB.NET基本數(shù)據(jù)類

2009-10-26 16:01:03

VB.NET正則表達(dá)式

2010-01-14 13:35:36

VB.NET特殊操作符

2009-10-15 16:44:47

VB.NET Opti

2010-01-13 10:53:24

VB.NET控件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號