解密Lotus Notes NSF

问题描述 投票:2回答:3

我想以编程方式解密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作为参数3,该成员具有可以设置为DBOptions.SetLocalEncryption( LNLOCALENCRYPTION::LNLOCALENCRYPTION_NONE )的成员。但是,此功能会创建一个新的NSF。如果可能的话,我想就地解密源NSF,以节省时间和磁盘空间。

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

lotus-notes lotus-domino lotus interop-domino
3个回答
3
投票

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

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


0
投票

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.