日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
概述VB.NET加密經(jīng)驗(yàn)總結(jié)

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、私鑰加密

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

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

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

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

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

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

◆DSA:DSACryptoServiceProvider
◆RSA:RSACryptoServiceProvider

3、哈希(Hash)值

哈希算法將任意長(zhǎng)度的二進(jìn)制值映射為固定長(zhǎng)度的較小二進(jìn)制值,這個(gè)小的二進(jìn)制值稱為哈希值。哈希值是一段數(shù)據(jù)***且極其緊湊的數(shù)值表示形式。如果散列一段明文而且哪怕只更改該段落的一個(gè)字母,隨后的哈希都將產(chǎn)生不同的值。要找到散列為同一個(gè)值的兩個(gè)不同的輸入,在計(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),對(duì)于數(shù)據(jù)算法,.NET Framework 則在其它命名空間中實(shí)現(xiàn),如 Convert 類實(shí)現(xiàn) Base 64 編碼,System.Text 來實(shí)現(xiàn)編碼方式的轉(zhuǎn)換等。

簡(jiǎ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ì)算散列,并返回一個(gè)字節(jié)數(shù)組  
  9. bytHash = md5.ComputeHash(bytValue)  
  10. md5.Clear()  
  11. ' 字節(jié)數(shù)組轉(zhuǎn)換成字符串  
  12. result=Convert.ToBase64String(bytHash) 

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

從以上來看,.NET Framework 對(duì)于數(shù)據(jù)加密/編碼還是支持比較好,大大地方便了開發(fā)人員,但美中不足的是,.NET Framework 中的數(shù)據(jù)加密算法仍然不夠完全,如 IDEA、BLOWFISH、其它算法,如ElGamal、Deffie-Hellman、ECC 等,對(duì)于一些其它的數(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方法

分享標(biāo)題:概述VB.NET加密經(jīng)驗(yàn)總結(jié)
標(biāo)題鏈接:http://www.dlmjj.cn/article/cccsghp.html