这个问题不是一般人能回答的!关于VB操作阿里云mysql云数据库

pigpal 2024-01-24 16:09:29

有请大侠!!!

VB6使用ODBC 3.51连接阿里云的mysql云数据库,正在用VB6做一个线上管理系统,那么问题来了:

我把连接云数据库的server、user、password、DataBase这些重要数据写在哪里?是写死到生成的exe文件中吗?我觉得不应该是这样操作,那应该如何设计呢?

...全文
311 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
msmvc 03-29
  • 打赏
  • 举报
回复

加密保存在本地文件中,加密时使用salt, salt值写在程序中

hitzsf 01-24
  • 打赏
  • 举报
回复

有个有趣的加密方式 bcrypt
不需要解密后的数据就能比较

  • 打赏
  • 举报
回复 2

在VB6中,将数据库连接信息(如服务器地址、用户名、密码、数据库名等)硬编码到程序中并不是最佳实践。这样做有几个潜在的问题:

  • 安全性问题:硬编码的敏感信息容易被恶意用户查看或修改。
    维护性问题:如果数据库信息发生变化(例如,用户名或密码更改),您需要在应用程序中手动进行更改,这很不方便。
    灵活性问题:每个使用这个应用程序的用户都需要有相同的数据库凭据,这限制了应用程序的灵活性。
    以下是一些更好的做法:
  1. 使用配置文件
    您可以创建一个单独的配置文件来存储这些敏感信息。这个配置文件可以是一个纯文本文件、一个XML文件或者任何其他格式的文件,只要它可以在程序运行时被读取。

例如,您可以创建一个名为** config.ini **的文件,ini内容如下:



Server=your_server_address  
User=your_username  
Password=your_password  
Database=your_database_name

然后在程序中读取这个文件:


vbscript
Private Sub ReadConfigFile()  
    Dim file As String  
    file = "config.ini"  
    Open file For Input As #1  
    Do While Not EOF(1)  
        Line Input #1, line$  
        If Left(line$, 5) = "[Database]" Then  
            Server = Mid(line$, 8, InStr(line$, "=") - 8)  
            User = Mid(line$, InStr(line$, "=")+1, InStr(line$, ",") - InStr(line$, "="))  
            Password = Mid(line$, InStr(line$, ",")+1, InStr(line$, "=") - InStr(line$, ","))  
            Database = Mid(line$, InStr(line$, "=")+1)  
        End If  
    Loop  
    Close #1  
End Sub
  1. 使用环境变量或注册表项
    您也可以将这些信息存储在环境变量或注册表项中。这种方法的好处是,这些信息可以在程序运行之前设置,并且对于程序的其他用户来说是隐藏的。然而,这种方法需要更复杂的代码来读取和更新这些设置。

  2. 使用加密的配置文件或数据库连接字符串
    如果安全性是您最关心的问题,您可以使用加密的配置文件或数据库连接字符串。这样,即使配置文件被盗,攻击者也很难从中获取敏感信息。这需要额外的工具或库来加密和解密配置文件。

总的来说,将数据库连接信息存储在外部文件(如配置文件)中,并在程序运行时读取,是一种更安全、更灵活的方法。这不仅增加了应用程序的安全性,也使得更新这些敏感信息更加容易。

pigpal 01-24
  • 举报
回复
@GT开发算法工程师 您的回复很全面,我的判断与您基本一致,我同意“使用加密的配置文件或数据库连接字符串”的方式,我准备把加密过关键信息的字符串以配置文件ini方式放在云存储器上,在程序中写入解密算法,然后连接,我想继续问的问题是:在程序中解密后得到的字符串又还原成了真实的字符串,这个字符串是否也有被恶意截获的可能?
  • 举报
回复 1
@pigpal 确实有风险,在程序中解密后得到的字符串确实可能面临被恶意截获的风险,特别是在网络传输或存储过程中。为了降低这种风险,你可以试试数据加密:就一般的加密算法包括AES、DES、3DES等。我以前在区块链接触到了哈希,然后我用的是哈希加密
pigpal 01-24
  • 举报
回复
@GT开发算法工程师 您所说的数据加密,是不是我只需要把数据库的密码用哈希加密即可?还是说我所有上传的数据库内容都加密处理?
5条回复

7,771

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧