如何使用户可变常量?
How to make a user changeable constant?
我想制作一个简单的控制台应用程序,它将执行一些我经常在学校使用的有用功能(检查数字是否为素数、写出数字的因子、求解二次方程等式等).
但在制作过程中,我决定添加一些有关该应用程序的详细信息以使用户界面更漂亮:写下应用程序的名称、版本...
我想到了一个我可以输入的管理员密码,然后我可以修改这些额外的详细信息或更改密码。
但是,如果我有一个像常量变量或常规变量一样存储的密码 const string password = "blablabla;"
每次我 运行 应用程序时,它都会有相同的密码 "blablabla"
所以 有没有办法以某种方式更改密码和其他额外数据,以便程序永久保存新值?
我想将所有这些额外信息保存在某个文件中,然后每次都从中读取它们,但是 如果文件被更改,那么数据将会被更改,我不希望这样。 我只想用管理员密码更改数据。我也认为我可以加密这些信息,但仍然可以轻松更改。
我还以为程序可以打开源代码然后修改那些初始化值,但是我需要编译那个文件,我也不想那样。
我只想要一个 .exe 应用程序 运行 并且可以使用管理员密码永久更改这些信息。
现在有人知道这是否可以做到吗?如何做到?
我正在用 C++ 编写此应用程序。
提前致谢
您需要向您的应用程序添加 Windows 资源,然后 运行 次更新它们。
https://msdn.microsoft.com/en-us/library/ms648004%28v=vs.85%29.aspx
is there a way to somehow change the password and other extra data so the program saves the new values permanently?
理论上,您可以修改可执行文件数据段中的常量。如何做到这一点取决于可执行格式。但我认为这是一个笨拙的解决方法,并且很难阻止某人在没有密码的情况下修改可执行文件。你真正想要的是变量。你对如何初始化变量有一个好主意:
I thought to save all those extra information in some file
好主意。简单的解决方案,可能适合您的应用范围。
if the file is changed then the data will be to and I don't want that. I want to change the data only with an admin password.
然后以某种方式保护文件。例如,您可以不授予任何人对该文件的写权限。或者,如果您偏执(这只是一个专为您准备的小型控制台应用程序,对吧?)加密它...
I also thought I can encrypt those information but still thay can be easely changed.
没有钥匙就不容易了。当然他们可以修改密文,导致垃圾数据,但如果您担心这一点,请意识到如果他们对您的文件具有写入权限,他们可以直接删除程序本身。
如果您想走得更远,请考虑将您的数据存储在成熟的数据库中,该数据库已经实施了身份验证和加密。
我想制作一个简单的控制台应用程序,它将执行一些我经常在学校使用的有用功能(检查数字是否为素数、写出数字的因子、求解二次方程等式等).
但在制作过程中,我决定添加一些有关该应用程序的详细信息以使用户界面更漂亮:写下应用程序的名称、版本...
我想到了一个我可以输入的管理员密码,然后我可以修改这些额外的详细信息或更改密码。
但是,如果我有一个像常量变量或常规变量一样存储的密码 const string password = "blablabla;"
每次我 运行 应用程序时,它都会有相同的密码 "blablabla"
所以 有没有办法以某种方式更改密码和其他额外数据,以便程序永久保存新值?
我想将所有这些额外信息保存在某个文件中,然后每次都从中读取它们,但是 如果文件被更改,那么数据将会被更改,我不希望这样。 我只想用管理员密码更改数据。我也认为我可以加密这些信息,但仍然可以轻松更改。
我还以为程序可以打开源代码然后修改那些初始化值,但是我需要编译那个文件,我也不想那样。
我只想要一个 .exe 应用程序 运行 并且可以使用管理员密码永久更改这些信息。
现在有人知道这是否可以做到吗?如何做到?
我正在用 C++ 编写此应用程序。
提前致谢
您需要向您的应用程序添加 Windows 资源,然后 运行 次更新它们。
https://msdn.microsoft.com/en-us/library/ms648004%28v=vs.85%29.aspx
is there a way to somehow change the password and other extra data so the program saves the new values permanently?
理论上,您可以修改可执行文件数据段中的常量。如何做到这一点取决于可执行格式。但我认为这是一个笨拙的解决方法,并且很难阻止某人在没有密码的情况下修改可执行文件。你真正想要的是变量。你对如何初始化变量有一个好主意:
I thought to save all those extra information in some file
好主意。简单的解决方案,可能适合您的应用范围。
if the file is changed then the data will be to and I don't want that. I want to change the data only with an admin password.
然后以某种方式保护文件。例如,您可以不授予任何人对该文件的写权限。或者,如果您偏执(这只是一个专为您准备的小型控制台应用程序,对吧?)加密它...
I also thought I can encrypt those information but still thay can be easely changed.
没有钥匙就不容易了。当然他们可以修改密文,导致垃圾数据,但如果您担心这一点,请意识到如果他们对您的文件具有写入权限,他们可以直接删除程序本身。
如果您想走得更远,请考虑将您的数据存储在成熟的数据库中,该数据库已经实施了身份验证和加密。