摘要 類是一種自定義數(shù)據(jù)類型,可以使用類將功能、處理、值、對(duì)數(shù)據(jù)庫(kù)訪問(wèn)用進(jìn)行抽象定義。應(yīng)用類可以高效、方便的對(duì)網(wǎng)站進(jìn)行開(kāi)發(fā),同時(shí)對(duì)后期的維護(hù)也帶來(lái)方便。本文主要從利用類來(lái)對(duì)數(shù)據(jù)進(jìn)行RSA加密/解密,以及應(yīng)用類來(lái)對(duì)數(shù)據(jù)庫(kù)記錄進(jìn)行添加、修改、刪除操作。
關(guān)鍵詞 方便 重復(fù)利用 類
類其實(shí)就是一種自定義的數(shù)據(jù)類型,而對(duì)象就是相應(yīng)類型的變量。在程序開(kāi)發(fā)過(guò)程中,我們把研究對(duì)象的特性進(jìn)行抽象與歸納。用類的屬性來(lái)表示研究對(duì)象的特性,用類的方法來(lái)完成研究對(duì)象可以執(zhí)行的操作。用戶可以使用類將功能、處理、值、數(shù)據(jù)庫(kù)訪問(wèn)和其他任何可以用ASP.Net代碼創(chuàng)造的對(duì)象進(jìn)行打包。本文主要從用類來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)進(jìn)行RSA加密/解密,以及應(yīng)用類對(duì)數(shù)據(jù)庫(kù)記錄進(jìn)行添加、修改、刪除操作。
在ASP.NET應(yīng)用類之前我們應(yīng)學(xué)會(huì)如何去定義一個(gè)類,那么定義一個(gè)類是有相應(yīng)的規(guī)范,它的語(yǔ)法規(guī)范是:
[修飾符] Class 類名
類體
End Class
其中修飾符主要有:①private同一個(gè)類中可以訪問(wèn)的;②protected 類和它的繼承里可以訪問(wèn)的;③friend 組件/工程內(nèi)可以訪問(wèn)的;④public 全局范圍都可以訪問(wèn)的。類體部分就是類的實(shí)現(xiàn),也可以稱為類的主體。主要有類的屬性與方法。在定義類方法過(guò)程中特別要注意過(guò)程與函數(shù)區(qū)別。有返回值的一定是函數(shù),那我們就要用關(guān)鍵詞:function去定義函數(shù)。所以在定義類時(shí)一定要小心。在Microsoft Visual Studio 2005中定義時(shí),創(chuàng)建好網(wǎng)站后,先在解決方案資源管理器“選擇網(wǎng)站”->“右擊” ->“添加新項(xiàng)” ->“選擇類” ->“修改類的名稱” ->“定義類”。
通過(guò)定義類,引入加密算法,對(duì)數(shù)據(jù)進(jìn)行加密。為了數(shù)據(jù)的安全性,在很多時(shí)間我們會(huì)對(duì)數(shù)據(jù)進(jìn)行加密。在這里我們引用RSA加密算法來(lái)對(duì)數(shù)據(jù)加密與解密。RSA公鑰加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美國(guó)麻省理工學(xué)院)開(kāi)發(fā)的。它是一種非對(duì)稱加密算法。在應(yīng)用中我們直接通過(guò)Imports System..Security.Cryptography語(yǔ)句來(lái)引用Cryptography.。定義類代碼如下所示:
Imports Microsoft.VisualBasic
Imports System
Imports System.IO
Imports System.Text
Imports System.Security.Cryptography
Public Class RSAJM
Private rsa1 As New RSACryptoServiceProvider()
Private rsa2 As New RSACryptoServiceProvider()
Public mm() As Byte
Public Function jiami(ByVal ym As String) As Byte()
Dim gy As String = rsa1.ToXmlString(False)
rsa2.FromXmlString(gy)
Dim jmm() As Byte
jmm = rsa2.Encrypt(Encoding.UTF8.GetBytes(ym), False)
Dim i As Integer = 0
mm = jmm
Return jmm
End Function
Public Function jiemi(ByVal mm() As Byte) As String
Dim ym() As Byte
ym = rsa1.Decrypt(mm, False)
Return Encoding.UTF8.GetString(ym)
End Function
End Class
定義好類后要對(duì)數(shù)據(jù)進(jìn)行加密,首先應(yīng)先定義對(duì)象:Dim bb As New RSAJM(),然后調(diào)用對(duì)象的jiami方法對(duì)數(shù)據(jù)進(jìn)行加密,如要對(duì)\"123abc\"進(jìn)行加密,則是:bb.jiami(\"123abc\")。通過(guò)加密得到Byte 數(shù)組為:95-DF-87-9F-48-D1-DE-8D-09-6B-44-37-63-69-DC-5C-28-59-DA-A8-12-E5-26-07-FD-5A-D7-B4-FB-9A-2C-D9-DD-B1-55-1E-DA-5F-AD-F4-CB-1B-52-A6-C2-49-1A-A2-59-86-51-7F-74-75-E3-95-E3-E6-4D-3B-97-22-29-53-13-40-02-B1-C0-28-41-30-9B-66。要解密則調(diào)用對(duì)象的jiemi方法。如對(duì)上面的密碼進(jìn)行解密就用:bb.jiemi(bb.mm)即可。解密后的結(jié)果為:\"123abc\"。在以后的網(wǎng)站開(kāi)發(fā)中我們要對(duì)數(shù)據(jù)數(shù)據(jù)加密、解密我們只需調(diào)用定義一個(gè)類,然后調(diào)用它的方法。使用起來(lái)非常方便,而且可重復(fù)性強(qiáng)。
通過(guò)定義類來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)的訪問(wèn)。我們知道我們對(duì)數(shù)據(jù)庫(kù)的操作都是連接數(shù)據(jù)庫(kù);添加、修改、刪除記錄這幾項(xiàng)操作。只是操作的數(shù)據(jù)庫(kù)名稱與SQL語(yǔ)句不同。這時(shí)我們就可以通過(guò)定義類來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的操作,從而使得我們的操作簡(jiǎn)單、方便。類的定義如下:
Imports Microsoft.VisualBasic
Imports System.Data
Imports System.Data.OleDb
Public Class DBCon
Privaet mycmd As New OleDbCommand()
Privaet mycon As New OleDbConnection()
Privaet DBRear As OleDbDataReader
Public Sub SelectData()
DBRear = mycmd.ExecuteReader()
End Sub
Public Sub Dbconnection(ByVal aa As String)
Dim mystr As String
mystr = \"Provider = Microsoft.Jet.OLEDB.4.0;\" _
\"Data Source =\" + System.Web.HttpContext.Current.Server.MapPath(\"~\\App_data\\\" + aa)
mycon.ConnectionString = mystr
mycon.Open()
End Sub
Public Sub DbCommand(ByVal mysql As String)
mycmd.CommandText = mysql
mycmd.Connection = mycon
End Sub
Public Sub UD()
mycmd.ExecuteNonQuery()
End Sub
Public Sub CloDB()
mycon.Close()
End Sub
End Class
我們添加、刪除數(shù)據(jù)只需定義對(duì)象,然后通過(guò)調(diào)用Public Sub Dbconnection(ByVal aa As String)其中參數(shù)\"aa\"是要連接數(shù)據(jù)庫(kù)的名稱;再調(diào)用Public Sub DbCommand(ByVal mysql As String)來(lái)設(shè)置SQL語(yǔ)句與創(chuàng)建OleDbCommand對(duì)象,其中參數(shù)\"mysql\"則是要傳入的SQL語(yǔ)句;最后調(diào)用Public Sub UD()就可以了。要查詢記錄則在調(diào)用了DbCommand過(guò)程之后,調(diào)用Public Sub SelectData()來(lái)獲取OleDbDataReader對(duì)象。最后通過(guò)OleDbDataReader對(duì)象的Read()方法來(lái)獲取查詢結(jié)果。
上面兩個(gè)類的應(yīng)用中我們可以知道通過(guò)類可以實(shí)現(xiàn)代碼的重復(fù)利用 ;易編寫(xiě)、易維護(hù)、易使用;而不需要編譯,非常方便。提高了網(wǎng)站開(kāi)發(fā)的效率。而且對(duì)于網(wǎng)站后期的維護(hù)也非常方便。所以類在ASP.NET中的應(yīng)用是非常多的。
(作者單位:河源理工學(xué)校)
參考文獻(xiàn):
[1]李春葆,金晶,喻丹丹,曾慧,曾平編著.ASP.NET2.0動(dòng)態(tài)網(wǎng)站設(shè)計(jì)教程[M].清華大學(xué)出版社,2010.
[2]沈大林,張曉蕾主編.楊旭,沈昕,秦曉文副主編.ASP.NET動(dòng)態(tài)網(wǎng)站設(shè)計(jì)培訓(xùn)教程[M].高等教育出版社,2008.