前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel实战技巧76: 使用文本文件隐藏登录敏感信息

Excel实战技巧76: 使用文本文件隐藏登录敏感信息

作者头像
fanjy
发布2020-05-04 14:48:35
1.7K0
发布2020-05-04 14:48:35
举报
文章被收录于专栏:完美Excel

经常看到很多人会将他们的登录名/密码直接存储在VBA代码中甚至工作表中,这是很不安全的一种处理方式。例如,下面使用VBA来自动登录公司数据库的代码:

代码语言:javascript
复制
'作用:使用Excel VBA登录到公司数据库Sub DatabaseLogin()    Dim ID_List As Variant    Dim Username_List As Variant    Dim Passoword_List As Variant    Dim Username As String    Dim Password As String    Dim x As Integer     '团队成员的登录信息    'ID号    ID_List = Array("x302918","x294832", "x392490")    '用户名    Username_List = Array("JohnSmith","JasonBorne", "FelixHarp")    '密码    Passoword_List =Array("ILuvMommy5", "HulkMan123","IneedSleep665")     '测试团队成员的ID    For x = LBound(ID_List) To UBound(ID_List)        If Environ("USERNAME") =ID_List(x) Then            Username = Username_List(x)            Password = Username_List(x)            Exit For        End If    Next x     '未识别用户,必须手工登录    If Username = "" Then        Username = Application.InputBox("输入用户名")        Password = Application.InputBox("输入密码")    End If     '登录到数据库    AccessDatabase Username, Password,"CustomerDatabase"End Sub

除非是自已单独在个人计算机上使用,最好不要采用上面的代码。thespreadsheetguru.com展示了一种简单的方法,能够在运行时将用户名和密码带入VBA,而不会在VBA代码或Excel工作表中暴露这些敏感信息。

首先,将自已的用户名和密码保存在个人计算机上,可以将它们保存到文本文件中,如下图1所示。

图1

你需要使用程序的所有团队用户都使用相同的文件名并将该文件放置在各自计算机的相同的位置。本例中,文件名是“个人信息.txt”,放置桌面上。这样,VBA代码将从这个文本文件中提取信息并进行处理,下面是完整的代码:

代码语言:javascript
复制
'作用:通过Excel VBA和文本文件来登录公司数据库Sub DatabaseLogin()    Dim Username As String    Dim Password As String    Dim TextFile As Integer    Dim FilePath As String    Dim Credentials As Variant     '文本文件所在路径    On Error Resume Next    FilePath = Environ("USERPROFILE")& "\Desktop\个人信息.txt"    On Error GoTo 0     '确定登录信息(手工或自动从桌面文件中提取)    If FilePath = "" Then        Username = Application.InputBox("输入用户名")        Password = Application.InputBox("输入密码")    Else        '通过Open函数确定下一个有用的文件号        TextFile = FreeFile           '打开文本文件        Open FilePath For Input As TextFile           '在数组中存储文件内容并确定登录信息        Credentials =Split(Input(LOF(TextFile), TextFile), ",")        Username = Credentials(0)        Password = Credentials(1)           '关闭文本文件        Close TextFile     End If     '登录到数据库    AccessDatabase Username, Password,"CustomerDatabase"End Sub

代码先查找桌面上指定的文本文件,使用Environ函数提取默认的路径,可将将文本文件所在文件夹追加到该路径后面以创建完整的路径。接着,IF语句判断是手工输入用户名和密码,还是由程序自已处理。如果在指定的路径中找到了指定的文本文件,则由程序自已处理。Split函数将文本字符串通过分隔符拆分,并存放在数组中,其起始元素索引值为0。也就是说,数组中的第一个元素将存放用户名,第二个存放密码。最后,将这两个元素传递给登录语句的参数,实现数据库自动登录。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档