【发布时间】:2014-02-16 04:33:32
【问题描述】:
我创建了一个需要数据库来显示信息的应用程序。没有密码的人不能访问数据库是非常必要的。
但是当我浏览我的可执行文件时,我发现数据库密码是纯文本的。
这是我的代码:
char pass[20]="MyPassword";
ui->setupUi(this);
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL3");
db.setConnectOptions();
db.setHostName("localhost");
db.setDatabaseName("DB");
db.setUserName("root");
db.setPassword(pass);
这是我在 .exe 二进制文件中找到的内容:
p< S | t¼ t¬ ? @ € 0 @ € À 0 @ € MyPassword QMYSQL3 localhost DB
这有点令人担忧。是否有解决方法让我的密码也被加密?
【问题讨论】:
-
在某些时候,您将不得不解密密码,因此无论哪种方式,一个有决心的人都可以访问您的数据库。如果您想要一个安全的数据库,那么您应该考虑将它放在服务器上,并让用户登录。但是,当然,如果您将密码硬编码到应用程序中,这将无济于事。