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

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 中运行通过。
(广州 李志东)
剖析Android自带Widget - Clock指针钟表 C#取得Excel工作簿工作表名称 C#中用Automation自动化方式对Excel的操作 VB如何打开或保存为有密码保护的Excel sheets工作表 VB在Excel表格文件中搜索指定内容 VB复制Excel表到另外一个Excel中 Java实现生成网站快照缩略图片 php实现生成网站快照缩略图片 C#实现生成网站快照缩略图片 VB比较两个Excel表格的内容 VB实现Excel按列或行排序 VB删除EXCEL表格指定行 用vb.net写的验证码识别代码 VB删除EXCEL表格指定列 Oracle数据库Windows 2003环境自动备份批处理 VB通过ADODB连接EXCEL表格文件读取数据 使用VBScript卸载软件 Discuz X2用户注册过程SQL Android手机参数表 用jQuery改变图片(image src) 用std::atomic實現簡單的讀寫鎖 ChinaPay网上支付网关.NET开发 VOB生成IFO文件用nero刻录DVD详解 15款开源Android游戏引擎(安卓免费游戏引擎) 将MVC ASPX转换到Razor视图 Word设置目录简明教程 asp.net mvc页面javascript代码中如何使用razor Discuz X论坛数据表结构:用户数据表pre_common_member boost在windows平台下自带超强 IOCP 的ASIO Boost下载和编译安装简明指引 Windows和Linux环境中Boost下载安装编译配置使用指南 不懂!不懂!不懂!关于文档和视图。 将照片从数据库中取出,并显示到Image控件中,若当中不用文件作为临时存储行不行?? 弹出菜单怎么做 关于存储过程执行的正误判断及数据回滚问题。 关于LPCWSTR的问题? TChart的Canvas写上字后,最小化再最大化后字就没了, [2]请大家无论如何都要帮个忙,oralce存储过程性能问题,高手请进!!! 请问如何直接取得其它计算机的系统时间 如何使的 Form2 在 Form1 的 Top ? 怎样在pagecontrol的一个tabsheet中的页面加一个上下的滚动条 急!将textbox控件放入table中后无法通过controls获得textbox的id? 大家说说看!! 初来乍到,向各位学习,请大家指点一下,介绍些好的C#的WEB源码示例。 请大家帮我看看! weblogic发布servlet的问题 Fatal Error 的问题 哪里有和手机一样的笔划输入法下载. 哥哥们,问题还没有搞定,帮帮忙吧,很急呀,分不够可以加分 XDevClub.Com[X时代开发俱乐部]欢迎大家一起来讨论,来者有分 求救!!我的vc缺少一个 psapi.h 头文件!!!急用,帮忙粘贴一下,当场给分!!! 怎样更改CListCtrl中内嵌的CHeadCtrl控件的风格? 有关TChart的问题? 我怎样才能获得插入语句的ID值? 求帮助数组的问题 给分100 紧急求救 在DELPHI里执行ORACLE存储过程出错??? 当按照书名查询时,系统提示没有该索引:no index with 'bookname' field.何故 CorelDram教程碟不能播放怪的问题!! 如何在vb調用SQL存儲過程,并能得到返回的參數值. 哪位大侠帮帮忙呀!! 用CString的Find(LPCTSTR pstr,int nStart),pstr有没有通配符,急!!!!! 一个XP与2000的共享问题 打印问题,请各位提点建议。 DBA的缺省密码---【在线等】 错误:"参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。" 产生原因 免费100m asp 空间 求救,如何打开一个USB设备,CreateFile吗?请具体些 在线求救 谁是最可恨的人? 如何将本页设为只能是 target="_top" 谁有格斗游戏的源码,设计资料! 三人合作共同开发一网站,现需页面设计,有意者留下EMAIL 怎样用C#把窗口菜单和按钮做成象VS.NET中的平面菜单和工具栏上的平面按钮? 为什么在MMC中新建SQLSERVER注册总是出现超时已过期的错误? 這樣定義宏是什么意思:#define LIBCMD(givenfunction) \? ===这样的SQL在ORACLE 怎么执行不了 一个WIN2000与WINXP的共享问题 如何将一个CBitmap存为BMP文件? 在directshow中,如何实现像大部分播放器那样的“快进”功能? 较难问题--IE6不能启用cookie? 如何修改group里的数据排序方式? 表示女孩能做到的男孩也可以做到的名言? 硝基苯的结构简式为什么不对? 原子吸收光谱法中常用原子化器有哪些? 哪种陶瓷里能用到碳酸铯?碳酸铯在陶瓷里起什么作用,哪种陶瓷里能用得到碳酸铯,因为陶瓷种类太多,有便宜的,贵点的,很贵的!希望解答者能把范围缩小点!谢谢! 汞电池漏夜漏出来的是汞吗? 中子在原子中的作用?对原子自身的作用~~ 碳酸铯的一些机关知识?碳酸铯的一些用途及用处! 无汞电池的漏液有毒吗对人 原子吸光光谱法中使用氩气的作用是什么 碳酸铯为什么显碱性 Y态的紫铜可以热处理变成软态的吗? 骗人的把戏是什么意思 困惑想在上学时塞圆珠笔头,因为写字时晃荡,字写起来别扭.现在都不上学了我写字时还去塞圆珠笔头,我想问有写字去塞圆珠笔头的吗?是否我太认真了没必要,我写字时有一丝的活动就塞即使 尿蛋白微量这个情况有什么问题吗? 并用它造句 哪种材质的锅铲好 红铜怎样能变硬 塑料牌号大全 用圆珠笔向上写字为何不出水why? 安卓手机GPS定位精度问题请问下,安卓手机定位的GPS获取的坐标,要精确到多少,才能保持5m范围的误差?天气好,室外的情况下.比如经纬度应该保证多少个小数点.我要做地图开发. 把戏的意思 烧菜最好用什么锅铲 HNO2,HOF,CsO2 ,AsCl5分解的方程式指明条件 在太空失重的情况下,水是什么形状? 为什么ph越大 物质的量浓度相同的三种盐NaX、NaY和NaZ的溶液,其pH依次为8、9、10,则HX、HY、HZ的酸性由强到弱的顺序是( ) 实验室用51g 2%的H2O2溶液和一定量的MnO2制取O2 (1)51g 2%的H2O2溶液中,含有H2O2()g,是()mol H2O2(2)计算完全反映后产生氧气的物质的量(写出计算过程) 在太空失重情况下,水是什么形状快啊,急用. 为什么PH相同,水解程度大的盐溶液较稀 氧气怎样用化学式表示? 原子吸收法与紫外可见分光光度法从原理有哪些相同点与不同点 和What is this in English意思差不多的还有那些句型?一般疑问句 氧气的化学式 石墨是不是原子晶体.为什么 碳酸铯不溶水? A3分解纯是不是氢氧化纳 原子就是一种元素的最小单位了,它是一个一个的,比如“一个碳原子”是指这种元素的一个实体.原子还可以元素是指某意种物质,比如 碳C 它是“总述”,碳原子,碳分子都属于碳元素的范畴.分 10克的不纯锌与100克稀硫酸完全反应制得剩余固体的质量为109.8克.产生的氢气多少?锌的纯度 初三科学~高手进!在长江三角洲河珠江三角洲地区,农民将低洼地挖成塘,挖出的泥土堆在塘边成基,在基上种桑,桑叶养蚕,蚕粪下塘养鱼,塘泥又作为桑树的肥料.请根据上述“桑基鱼塘”生态农 核素是指同种元素的原子,还是指所有元素的原子 甲酸苯甲脂结构简式怎么写 一定温度下,向饱和氢氧化纳溶液中加入一定量的纳块,充分反应后恢复到原来温度,溶液的pH为什么不变? 关于元素,原子等基本粒子(初三的)关于元素我还是不明白1.定义:是具有相同核电荷数(质子数)的同一类原子的总称.(在这里,离子是带电荷的原子)2.原子和离子的区别:原子不显电性,离 苯甲酸甲酯和甲酸苯甲酯是一样的么? 为什么我家猪烧熟后骨头是黄色的 能说的仔细点吗?我听说是病猪 打的青霉素所以骨头是黄色的 为什么是黄色的骨头还有什么可能 有对人体不好的原因吗? 为什么连通器液面总是相平具体 为什么用粗锌代替纯锌与硫酸反应更快锌与硫酸的反应 烧出来的米饭里有黄色的一粒粒的东西是什么 原子吸收分光光义计和紫外可见分子吸收分光光度计在仪器装置上有哪些异同点?为什 水的坏处 水的好处 水能变成什么 自由基的生物学作用是什么? 连通器中各页面保持相平的条件是呃、、准确的~记得几个回答貌似不大准…… 为什么软态铜管经过冷拉拔后表面会出现很多沿管子方向的划伤? 高中化学 用惰性电极电解K2SO4方程式怎么写? 原子吸收与紫外,红外,可见的异同点与优缺点 COCL2与H2O2反应吗 紫铜软态直管和普通的铜管除了质软容易弯曲,减少弯曲变形外,有何区别? 惰性电极在电解池里面有什么用啊, 除锈药水的成分是什么? 什么叫结构简式 鱼翅、燕窝、鲍鱼、海参、熊掌...等哪个最贵?这些非普通食品哪个最贵?哪个最好吃?大家随便发言啊,说点什么都行. 外交部就日防长涉钓鱼岛言论、\"棱镜格现任总统发表卸职演讲 感谢格民众对最强风暴袭丹麦世界主要城市10月30日天气预报美学者告诫安倍勿参拜靖国神社中方将为推动两苏关系持续改善和发展作首位法国总统出访斯洛伐克 具有历史意美国14名男子因向未成年人传播色情图俄将发行索契冬奥会纪念钱币 总发行量日自明党提议福岛核电站追加除污费应由统计显示韩国“女大男小”婚姻比率逐渐分析称受教育程度越高越易于维持婚姻长突尼斯各政党将会议讨论选举新总理 助促招商引资 奥巴马向外国投资者“推销美国脱口秀主持人就“杀光中国人”言论巴基斯坦一亲政府部落长老与6名家人被中国拟规定城镇更新须经项目区内90%签证系统落后致损失57.9亿元 澳旅普京与国际奥委会主席参加索契火车站开法国奥塞美术馆打破艺术禁忌举办“裸男西班牙一煤矿瓦斯泄漏致6人死 直升机平潭:财税优惠,提速兑现《在全国党校工作会议上的讲话》粮田播“绿”标题导航如云漫起厦门轨道1号线轨道试验段完成铺设不得以“营改增”为借口哄抬价格管理法规今起在厦实施图片新闻在迁安小心这个人 她是骗子!面包车撞上路灯杆 司机当场死亡外媒:中国将赶超美国,终结美国一百四油价大幅反弹背后恐酿新一轮危机,非农酒驾入刑五周年:“开车不饮酒、饮酒不攀岩有望进入奥运会 中国攀岩后备人才中甲综述-韩鹏首球人和3-1逆转 一半挂飞进沟 真的脱离地面了中石油在印尼圈了块地 全世界都为此震迁安市民注意:近期这个东西不要吃!已蓝莓瑞士卷酸辣汤#多效护理一招制胜#
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘