当前位置: 首页 > 知识库问答 >
问题:

对字符串进行编码并将值保存到Inno Setup中的文件

段干德泽
2023-03-14

我在Inno Setup脚本中有一个Pascal脚本代码,用于从用户输入中获取DBURI,并将其保存到文件中,以便应用程序可以读取此字符串并连接到数据库。

DBURI :=
  'Databaseserver//'+DatabaseUserName+':'+DatabasePassword+'@'+
  Host+':'+Port+'/'+DatabaseName+'"';

SaveStringToFile(dbconf, DBURI, True);

它工作得很好。但问题是字符串未加密,任何浏览该文件的人都可以获得数据库密码。我想在Pascal Script代码中使用带有预定义密钥的加密方法,并将输出值(加密字符串)写入文件。所以,我可以在应用程序代码中包含加密方法和密钥,以解密值并开始使用DBURI字符串。

那么,我的问题如何在 Pascal 脚本代码中使用带有预定义密钥的加密方法(任何人)?我在 Pascal 文档中找到了很多文章,但我不知道如何使用?

共有1个答案

洪星文
2023-03-14

你的问题比较宽泛,我也就宽泛的回答一下。

一些事实:

> < li>

通常,没有真正安全的方法来加密数据(数据库密码),以便可以自动使用它们。即使您使用加密密钥。从二进制文件中检索密钥并不困难。特别是Inno设置代码很容易拆卸。参见Inno Setup [Code]中的反汇编字符串。尽管您似乎愿意接受甚至简单的无密钥Base64编码,但您的安全性需求可能没有那么高。

Inno Setup(或其Pascal Script代码)中不支持加密。您必须使用外部功能或应用程序。虽然一些简单的编码(而不是加密),如Base64,可以用Pascal Script代码实现。

您可以执行的操作:

>

  • 如果您将使用与加密数据相同的本地帐户解密数据(同一用户安装并使用软件),请使用Windows CryptoAPI。这是非常安全的,因为它使用了与本地帐户关联的密钥,并受帐户密码保护。但这限制了使用,如前所述。

    请参见使用WinAPI的简单AES加密。< br >我没有尝试用Pascal脚本实现这一点,但我相信这应该是可能的。

    我相信你可以使用CryptoAPI,即使有一个已知的密钥(在安装程序和应用程序之间共享),但我不知道细节。

    使用已知密钥加密数据的另一种方法是为此调用外部应用程序。可以使用PowerShell和.NET类来实现加密。或者,您可以在自己的应用程序中添加一个隐藏功能,您可以从Inno Setup调用该功能来加密和存储数据。

    如果您对 Base64(或十六进制)编码感到满意,请参阅:在 Inno 安装程序
    中将字符串编码为 Base64(Inno 安装程序的 Unicode 版本)

  •  类似资料:
    • 这就是我现在拥有的: 这确实有效,但似乎NSData使用UTF-8作为输出字符集。但是我需要ISO-8859-1输出字符集中的数据来获得正确的解码。默认设置(UTF-8)失败。 是否有的选项,或者我必须使用C#将其转换? 编辑: 我可以假设ASCII是ISO-8859-1吗? 我认为没有。

    • 我有一个字符串,其中我需要拆分它并存储在ArrayList中,如下所示;所有这些都使用Java7。 下面是我的程序的输入; 我在这里试图实现的是一个数组列表,如下所示。 我编写了一个示例代码,但似乎没有将elementB分组到列表中。我们如何将这两个元素组合成一个列表。 示例代码: 我得到下面的输出,其中elementB没有改变,而是重复自身。有人能给我指路吗

    • 本文向大家介绍python保存字符串到文件的方法,包括了python保存字符串到文件的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python保存字符串到文件的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Python程序设计有所帮助。

    • 本文向大家介绍如何在iPhone中对字符串(NSString)进行URL编码?,包括了如何在iPhone中对字符串(NSString)进行URL编码?的使用技巧和注意事项,需要的朋友参考一下 在开发基于API的Web应用程序时,我们绝对需要与多个Web服务和URL相交。网址可能包含特殊字符,搜索字词,查询,标题和许多其他内容,具体取决于我们所需的服务。这就是为什么我们需要某种编码,以便我们创建的U

    • 问题内容: Linux / x86_64上的GCC 4.7是否具有默认字符编码,通过它可以验证和解码C源文件中字符串文字的内容?这是可配置的吗? 此外,将字符串文字从字符串文字链接到输出的数据部分时,它是否具有默认的执行字符编码?这是可配置的吗? 在任何配置中,源字符编码都可能与执行字符编码不同吗?(那gcc会在字符编码之间进行代码转换吗?) 问题答案: 我不知道这些选项的实际效果如何(不使用at

    • 不执行该作业。 我试着用: 我真的不知道如何处理这件事。 更新: 然后我将它从DB中提取为$data。