打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
[VB]使用VB6对密码进行编码和解码
userphoto

2013.03.28

关注

[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以及其他计算机和编程方面的书籍和杂志文章了。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Python入门教程之字符串编码知识小结
ASCII 编码表
编码、解码的基本概念和主要的编码方式
深入浅出URL编码
HTML URL 字符编码
ASCII编码
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服