2

我想以编程方式解密 Lotus Notes NSF 文件。假设对于每个 NSF,我都有访问 NSF 所需的 ID 文件和密码。

我使用的是 Lotus Notes 8.5.2、Windows 7 SP1 64 位。我愿意使用 COM、C++ API 或 C API。

我知道 C API 函数NSFDbIsLocallyEncrypted,它报告 NSF 是否已加密。但是,我不相信它能够解密 NSF。

我知道 C++ API 函数LNNotesSession.CreateDatabaseCopy,它以参数 3 为参数 DBOptions,它有一个我可以设置为的成员 DBOptions.SetLocalEncryption( LNLOCALENCRYPTION::LNLOCALENCRYPTION_NONE )。但是,此函数会创建一个新的 NSF。如果可能,我想就地解密源 NSF 以节省时间和磁盘空间。

如何从 NSF 中删除本地加密?

4

3 回答 3

3

AFAIK,没有用于解密 NSF 文件的公开 API。

此外,由于需要重写整个文件才能解密所有数据,所以我认为复制整个 NSF 不会有任何时间或空间损失。

于 2013-02-18T22:57:06.803 回答
0

要解密使用中等或强加密加密的 NSF 文件,以便只有特定的 ID 文件可以打开它,请登录到该 ID 文件,选择应用程序属性,然后取消选择“强加密”。然后,选择“压缩数据库”,关闭属性,关闭与该文件关联的所有内容,然后重新打开该文件。压缩过程会更新所有内容以匹配该选项的新状态。(您也可以使用 API 执行此操作。)

要解密使用用户公钥或用户 ID 中存在的共享/命名加密密钥加密的文档,您必须编写一个代理或 API 程序来打开数据库中的每个文档并调用 NSFNoteDecrypt,然后在每个文件上调用 NSFNoteUpdate。

于 2013-07-18T03:26:06.873 回答
-1

Ytria 似乎确实有一个软件解决方案(DatabaseEZ),您可以在其中设置数据库加密设置,尽管我没有尝试过。该软件的免费精简版似乎不允许这样做。

于 2020-01-10T18:07:40.433 回答