北京快乐8官网|北京快乐8选一秘诀

品略圖書館

[VB]使用VB6對密碼進行編碼和解碼

ZDNet軟件頻道 時間:2004-07-06 作者:Builder.com |我要評論()

本文關鍵詞:vb

不少程序都需要設置密碼以達到保護的目的。不過現在很多用戶都有能力自己修改注冊表,而程序員肯定不會希望隨便哪個用戶都可以進入注冊表查看到程序的密碼。另外,網頁使用GET請求傳送的密碼很容易被截獲。這也正是我們為什么要對密碼進行簡單加密的原因。

不少程序都需要設置密碼以達到保護的目的。不過現在很多用戶都有能力自己修改注冊表,而程序員肯定不會希望隨便哪個用戶都可以進入注冊表查看到程序的密碼。另外,網頁使用GET請求傳送的密碼很容易被截獲。這也正是我們為什么要對密碼進行簡單加密的原因。

簡單的加密算法(比如簡單的ASCII值轉換)有時候比復雜的算法更具優勢。假設密碼為“ajax7”,你可以按照以下方式進行編碼:

“a”的ASCII 值為97,對其加1,變為98,這個值的ASCII 碼為“b”。

“j”的ASCII 值為106,對其加1,變為107,這個值的ASCII 碼為“k”。

“a”的ASCII 值為97,對其加1,變為98,這個值的ASCII 碼為“b”。

“x”的ASCII 值為120,對其加1,變為121,這個值的ASCII 碼為“y”。

“7”的ASCII 值為55,對其加1,變為56,這個值的ASCII 碼為“8”。

編碼后的密碼就是bkby8,解碼的過程和編碼相反,每個ASCII值減1即可。

以下vb代碼就是采用了這種編碼算法(假設密碼只包含數字和字母)

Public Function EncodePassword(pw As String) As String

" 傳遞pw,并返回編碼后的pw。

Dim codedPW As String

Dim i As Integer

Dim ch As String * 1

If Len(pw) = 0 Then

EncodePassword = ""

Exit Function

End If

codedPW = ""

pw = Trim(pw)

For i = 1 To Len(pw)

ch = Mid(pw, i, 1)

codedPW = codedPW & Chr(Asc(ch) + 1)

Next i

EncodePassword = codedPW

End Function

Public Function DecodePassword(codedPW As String) As String

" 傳遞編碼后的pw,并返回解碼的 pw.

Dim decodedPW As String

Dim i As Integer

Dim ch As String * 1

If Len(codedPW) = 0 Then

DecodePassword = ""

Exit Function

End If

decodedPW = ""

codedPW = Trim(codedPW)

For i = 1 To Len(codedPW)

ch = Mid(codedPW, i, 1)

decodedPW = decodedPW & Chr(Asc(ch) - 1)

Next i

DecodePassword = decodedPW

End Function

稍復雜的編碼算法有很多種,比如對每個ASCII值所加的不是一個常數,而是根據字母的位置加上不同的值。

雖然這些加密算法對于FBI或CIA來說,并不難解碼,但對于普通用戶,它能有效地防止以明碼保存密碼帶來的危險。

作者:Peter Aitken。自從Visual Basic 1.0版問世以來,Peter Aitken就一直在使用vb編程。他已經編寫過很多關于VisualBasic以及其他計算機和編程方面的書籍和雜志文章了。

免責聲明:本文僅代表文章作者的個人觀點,與本站無關。其原創性、真實性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容文字的真實性、完整性和原創性本站不作任何保證或承諾,請讀者僅作參考,并自行核實相關內容。

http://www.kzguv.com.cn/style/images/nopic.gif
我要收藏
個贊
被踩
分享到
相關推薦
精選文章
分享
評論
首頁
北京快乐8官网