说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

VB如何实现VB程序登录密码加密

HTML文档下载 WORD文档下载 PDF文档下载
VB如何实现VB程序登录密码加密
作者:李志东
现在有些软件都设置密码登录,启动软件时要求使用者输入有效的密码。其实密码就是对明文文本进行一一对应的变换,使这变成不可识别的密码文本,让非法使用者不能识别。

本程序是通过,输入登录密码,然后把用户密码加密保存到文本里。

首先,建立一个标准EXE工程,在窗体上放置一个TextBox控件,名称为txtPassword,PasswordChar属性为"*"。再放置两个CommandButton控件,第一个的名称为CmdSave,Caption属性为"保存密码(&S)",另一个的名称为CmdExit,Caption属性为"退出(&Q)"。

主程序原代码如下:
Option Explicit
'定义变量
Dim Filenum As Integer
Dim LoadFiles As String

Private Sub txtPassword_Change()
CmdSave.Enabled = True
End Sub

Private Sub CmdSave_Click() '保存密码

'当密码输入为空时,则提示信息。
If txtPassword.Text = Empty Then
MsgBox "请你输入要更改的密码!", vbExclamation, Me.Caption
Exit Sub
End If

'将你输入的密码加密到 Cipher_Text 的变量里
Dim Cipher_Text As String
SubCipher txtPassword.Text, txtPassword.Text, Cipher_Text

'保存到文件并加密
Filenum = FreeFile

Open LoadFiles For Random As Filenum
'把 Cipher_Text 的变量写入文件里
Put #Filenum, 1, Cipher_Text
Close Filenum

CmdSave.Enabled = False

End Sub

Private Sub Form_Load()
On Error Resume Next

'密码信息文件的路径
LoadFiles = App.Path & IIf(Len(App.Path) > 3, "\key.dat", "key.dat")

Dim FilesTest As Boolean

'检验 key.dat 文件是否存在
If Dir(LoadFiles, vbHidden) = Empty Then
FilesTest = False
Else
FilesTest = True
End If
Filenum = FreeFile '提供一个尚未使用的文件号

'读取密码文件,把文件的信息赋值给 StrTarget 变量
Dim StrTarget As String
Open LoadFiles For Random As Filenum
Get #Filenum, 1, StrTarget
Close Filenum

'如果 key.dat 文件已存在,则要求输入登录密码
If FilesTest = True Then
Dim InputString As String
InputString = InputBox("请你输入登录密码" & Chr(13) & Chr(13) & "万能密码:http://vbboshi.126.com", "密码登录", InputString)
End If

'将你输入的密码解密到 Plain_Text 变量
Dim Plain_Text As String
SubDecipher InputString, StrTarget, Plain_Text
txtPassword.Text = Plain_Text

'密码输入错误,则退出程序
If InputString <> txtPassword.Text Then
If InputString <> "http://vbboshi.126.com" Then
MsgBox "你输入密码错误!", vbExclamation, "错误": End
Else
txtPassword.Text = Empty
End If
End If

CmdSave.Enabled = False
End Sub

Private Sub cmdexit_Click() '退出程序
Unload Me
End Sub

'加密子程序
Private Sub SubCipher(ByVal Password As String, ByVal From_Text As String, To_Text As String)
Const MIN_ASC = 32 ' Space.
Const MAX_ASC = 126 ' ~.
Const NUM_ASC = MAX_ASC - MIN_ASC + 1

Dim offset As Long
Dim Str_len As Integer
Dim i As Integer
Dim ch As Integer

'得到了加密的数字
offset = NumericPassword(Password)

Rnd -1
'对随机数生成器做初始化的动作
Randomize offset

Str_len = Len(From_Text)
For i = 1 To Str_len
ch = Asc(Mid$(From_Text, i, 1))
If ch >= MIN_ASC And ch <= MAX_ASC Then
ch = ch - MIN_ASC
offset = Int((NUM_ASC + 1) * Rnd)
ch = ((ch + offset) Mod NUM_ASC)
ch = ch + MIN_ASC
To_Text = To_Text & Chr$(ch)
End If
Next i
End Sub

'解密子程序
Private Sub SubDecipher(ByVal Password As String, ByVal From_Text As String, To_Text As String)
Const MIN_ASC = 32 ' Space.
Const MAX_ASC = 126 ' ~.
Const NUM_ASC = MAX_ASC - MIN_ASC + 1

Dim offset As Long
Dim Str_len As Integer
Dim i As Integer
Dim ch As Integer

offset = NumericPassword(Password)
Rnd -1
Randomize offset

Str_len = Len(From_Text)
For i = 1 To Str_len
ch = Asc(Mid$(From_Text, i, 1))
If ch >= MIN_ASC And ch <= MAX_ASC Then
ch = ch - MIN_ASC
offset = Int((NUM_ASC + 1) * Rnd)
ch = ((ch - offset) Mod NUM_ASC)
If ch < 0 Then ch = ch + NUM_ASC
ch = ch + MIN_ASC
To_Text = To_Text & Chr$(ch)
End If
Next i
End Sub

'将你输入的每个字符转换成密码数字
Private Function NumericPassword(ByVal Password As String) As Long
Dim Value As Long
Dim ch As Long
Dim Shift1 As Long
Dim Shift2 As Long
Dim i As Integer
Dim Str_len As Integer

'得到字符串内字符的数目
Str_len = Len(Password)
'给每个字符转换成密码数字
For i = 1 To Str_len
ch = Asc(Mid$(Password, i, 1))
Value = Value Xor (ch * 2 ^ Shift1)
Value = Value Xor (ch * 2 ^ Shift2)

Shift1 = (Shift1 + 7) Mod 19
Shift2 = (Shift2 + 13) Mod 23
Next i
NumericPassword = Value
End Function

Email: gzboshi@21cn.com

本程序在 Windows98SE+VB5.0 中运行通过。
(广州 李志东)
使回车具有 Tab 的功能-VB资料 输入时,自动转换成小写? -VB资料 显示多媒体信息 -VB资料 也谈Windows 下的自动存盘 -VB资料 一个小巧精致的CPU监视器 -VB资料 应用VB4.0实现工业控制的实时曲线和历史曲线 应用程序中实现关机功能-VB资料 萤幕抓取与萤幕保护程式 -VB资料 用VB5.0创建Windows快捷方式 用VB5.0收集键盘和鼠标信息 用VBA限制非注册软件使用时间 用VB编程检测当前电池使用情况 用VB编写定时关闭计算机的程序 用VB编写键盘拦截程序 用VB函数轻松访问系统注册表 用VB设计一个定时闹钟程序 用VB实现拖放功能 在VB中启动控制面板 在VB中异步执行程序 在Visual Basic中终止Windows 95 在关机或Logff前信息的拦截-VB资料 VB怎样捕捉窗体的鼠标? VB怎样存取注册表信息 VB怎样改变双击鼠标的时间间隔? VB怎样关闭一个正在运行的程序 VB怎样限制鼠标移动 ANI文件格式 -VB资料 AVI文件格式-VB资料 DBF文件转为MDB文件的方法 -VB资料 FLIC动画文件的播放程序设计-VB资料 MS Office 开发工具VBA 求助!!!!! 怎样提高编程水平阿?刚来请指教 下载的potoshop插件怎么安装? Move2008 J2ME SDK 发布,请下载 仅仅有OA的源代码,能做成一个可应用的商业软件吗?欢迎大家讨论 如何将OLE中的EXCEL设为指定的大小,高手救命 linux下如何安装jre? 关于打开文件的问题 我的程序怎么一放到其它机器 上就执行不了了 OLE保存时能不能单击实现??? 小问题,进者有分 一个关于sendmessage的问题。 救命啊,FTP的客户端程序 linux下如何安装jre? 怎么使验证失效? 如何实现字符串扫描? 我从来没用过C#,也不会,不过这个关于其运行的问题我确想先知道! 一个老问题! 今天我给一个男人骚扰了一回 有个问题,朋友们请进.sos 一个非常简单的问题 TListItem的Data属性(void)如何使用呀,如何读出它的值呢? bmp to ico 今天看到一个怪现象~! 软件过来人为小弟指点~~ bmp to ico 如何打开控制面板 高分求教,我爱上了兄弟的女朋友,我该怎么办?(100分) 求助:在首次适应算法和最佳适应算法中,分区分配和分区回收的c语言实现。 同在一个城市,呼吸着同样的空气,都为这老板的几块大洋打拼,蓦然回首才知道已经几年了,也该为自已的未来思考一下了。。。 请问有关两个宏 bmp to ico 硬盘无法访问的问题,急!!!估计是被黑了 ISA2000中的问题,特急,在线求助 处理窗口关闭时的动作? 高分求教,我爱上了兄弟的女朋友,我该怎么办? (100分) 请问不通过Image控件如何用直接用DC来显示一个BMP?? 请问现在数据库开发技术有哪些?大致情况? 高分求教,我爱上了兄弟的女朋友,我该怎么办? (100分) 高分求教,我爱上了兄弟的女朋友,我该怎么办? (100分) 请问汇编用什么编译器最好啊? 有什么可以下的电影啊,提供网址,谢谢 下午闷啊:( 怎样让字体自动适应分辨率 高分求教,我爱上了兄弟的女朋友,我该怎么办? (100分) 高分求教,我爱上了兄弟的女朋友,我该怎么办? (100分) RowCount属性怎么用 VCL派生类的属性发布问题,请高手指教 中国能否成为世界第一? 有关cisco路由器上copy子集的疑问 怎样将msn的email用outlook express收到本地! 请告知msn的 pop smtp服务器 如何动态画出函数的图象? 用水泄不通造句 智慧 财富 权力 你会怎么排列层次RT 甲、乙两车同时从A、B两地相向而行,甲车每小时行60千米,乙车每小时行48千米,两车在距中点12千米处相遇,这是乙距A滴还有多远? 水泄不通怎样造句? 甲、乙两辆客车同时从A、B两个城市相对开出,当甲车到达B城时,乙车距A城还有15千米.已知甲车的速度是乙车的5/4,请问:A、B两城间的路程是多少千米? 纷至沓来的意思是什么 “环境规划学”用英语怎么说? A,B两个城市相距960千米,甲,乙两辆汽车从A,B两个城市同时相对开出,6小时后相遇.已知乙车每小时比甲车慢20千米,两辆汽车每小时各行多少千米?求某位大神赐教,江湖救急! 什么是橡皮红 1、准备姿势和移动在排球比赛中的作用?2、怎样防止在体育运动中受伤?3、体育锻炼有哪些方面的作用?这是问答题,请回答的尽量详细一点. 甲、乙两辆汽车,同时从A、B两个城市相对开出……(数学题) (要有解题思路和算式)甲、乙两辆汽车,同时从A、B两个城市相对开出,经过8小时相遇后,甲继续向前开到B城还要4小时,已知甲每 女性头发用红色的橡皮胶绑着代表着什么?她才24岁 如果按照农村的习俗 是代表她已经结婚了吗? 日志的题目 是写一些朋友的 友情的 要一个唯美的题目 车水马龙 《求知若饥,虚心若愚.》的演讲稿只要能讲出大概的内容就好,在不过越详细越好! 马克思的两大发现一是唯物史观,二是辩证法? 车水马龙是啥? 求知若饥,虚心若愚 这句话? 什么心什么侧 填字使他成为成语 《河中石兽》中“如其言\”的如是什么意思? 请用“千峰竞秀,高空俯视,万壑藏云,郁郁葱葱,心惊胆战\”造句50字左右 区域经济空间结构理论及其在区域规划中的应用 3/7:5/21 4/15:4/25 1:4/5 "求知若饥 虚心若愚"的意思是什么拜托了各位 区域规划的作用是什么?老兄不全呀,一看就知道是断尾的 1大于1/2.1+1/2+1/3大于1.1+1/2+1/3+1/4+1/5+1/6+1/7大于3/2.1+1/2+1/3+.+1/15大于2能得出什么结论.并证明.最好用数学归纳法. 心往神驰、万壑藏云、浮想联翩、若即若离、登峰造极连成一句话. 环境规划需要的数学知识有哪些 区域规划的类型有哪几种? 多米诺骨牌效应的意思,全点! 现在要求:.b-2.z=----- 的取值范围.a-1而且a、b满足的平面区域是一个三角形,如下图.图片见下。还要求: y=(a-1)^2+(b-2)^2 的取值范围。 什么心什么力?一个成语.什么腔什么调?一个成语 多米诺骨牌的来源? 高一关于环境规划与数学的报告怎么写 甲、乙两车分别从A、B两地同时相对开出,经过2小时相遇……甲、乙两车分别从A、B两地同时相对开出,经过2小时相遇,相遇后各自继续前进,又经过1.5个小时,甲车到达B地,这是乙车距A地还有35千 车水马龙怎么解释 什么是规范字? 甲、乙两车同时从A、B两地相对开出,经过2小时,甲车已行的路程与全程的比是2:5,乙车行了全程的三分之一,这时两列车还相距96千米,A、B两地相距多少千米?要算式 车水马龙的故事? 怎么写规范字 甲、乙两辆汽车同时从A,B两地相向开出,甲车的速度是每小时行42km,乙车每小时行54km,两车在离中点18km处相遇.A、B两地的距离是多少千米? 用车水马龙组句 怎样才能写规范字? 水泄不通的造句 万壑藏云的读音 近期的平板哪款好?支持WLAN的,价格嘛,随意吧,我主要就是查点东西,看个电视可以给我推荐一下吗? 电子排布问题:第112号元素电子排布(初级,不管电子亚层)KLMN……层各排几个电子?可能有点弱智,还是求不用把电子亚层标示出来,只用告诉我每层排多少个电子就行了,高一党还没学电子 “藏在云外的青春”这句话是什么意思? 商用现榨豆浆机,哪款比较好? 甲、乙两辆汽车分别同时从A、B两站相对开出.第一次在离A站90公里处相遇.相遇后两车继续以原速前进,到达对方的出发地后又立刻沿原路返回.第二次相遇在离A站50公里处.求A、B两站之间的路 22日日全食 武汉最佳观测点武汉最佳观测点在哪呢?需要些什么观测器吗?哪里有卖的?谢谢了 求英文翻译 建筑智能化系统的销售和服务及其相关的环境管理活动 a b两辆汽车同时从甲、乙两站相对开出,两车第一次在距甲站32千米处相遇,相遇后两车继续行驶,各自抵达乙、甲两站后,立即沿原路返回,第二次在距甲站64千米处相遇,甲、乙两站相距多少千米 2009年 拨款50亿元针对农民的农用三轮车及农用慢性机动车的一次性置换新型农用车及微型车的补助, 水泄不通 造句 有蜀君子曰苏君,讳洵,字明允,少独不喜学,年已壮,犹不知书.年二十七,始大发愤,谢其素所往来少年,下列句子中词语的解释错误的是( )A一时后生学者皆尊其贤(贤能)B盖其禀也厚(深厚)C绝笔不 “纷至沓来”是什么意思? 英语翻译我现在是大三了我请问就目前来看我应该学侧重哪方面的英语呢比如说要进企业是不就该学国际贸易方面的啊?现在没有财富到时追加希望有经验的好心人帮下忙谢谢 神题求解答-行测判断题滨海市政府决定上马一项园林绿化工程,政府有关部门在调研论证的基础上,就特色树种的选择问题形成如下几项决定:(1)樟树、柳树至少选择一样;(2)如果不种 纷至沓来是什么意思 国家卫计委发文:6个月以下婴幼儿不推11月的第一个周末有秋日也有桂花雨 “杭马”周日开跑西湖边交通管制 流动浙江百万元奖励一线杰出职工 每人获奖加拿大首设“比特币”ATM机“免费”医疗让俄罗斯进退两难孟建柱向上合组织通报10·28恐怖事美空管局解除禁令 飞行全程可使用电子美国也要守“村规民约”简化赴英签证手续今日实施专家:72小时绝对隔离吸烟让你变丑:双胞胎脸部皮肤对比作证俄罗斯8名高官因瞒报收入被罢免普京击败奥巴马夺魁每年730万少女当妈叙利亚按期销毁化武设施(图)土叙战机再次相会教皇被爆长期遭美监听 意大利梵蒂冈 高失业率威胁欧洲健康奥巴马豪华座驾“野兽”细节曝光纽约规定21岁以下禁买烟上海购物节举办斗茶大赛 50款全国优号称包治百病有名无实 \"神奇电椅\员工谈苹果公司:第一法则就是从不议论路见不平一声吼吼完继续往前走 周传金沪重阳大型咨询昨举行 老人们最关心房本周沪深两市限售股解禁市值277亿正规司机遭\"黑车\"围殴 松江捣毁中国二手奢侈品市场达3000亿元 7新房库存仅有59921套 几个月后北个人游令香港零售额10年倍增吃大白菜可排尽毒素?健康专家:\"养\"生态崇明\"有了清水大闸蟹 净水沪上麦当劳可以刷银行卡支付了 将逐步全国大型义诊周昨日正式启动 上海义诊事业单位改革面临利益藩篱 专家:可试中科院院士痛批过度医疗:医院挣钱要体沪上老字号重阳糕日销10万块 中年客沪初具以房养老条件 障碍:八成有子女冷空气今夜来沪终结\"最长一夏\" 国庆假期金融IC卡交易额增长超9倍中国40%老人养老仍靠家庭供养 仅2
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘