【问题标题】:Decrypt Lotus Notes NSF解密 Lotus Notes NSF
【发布时间】:2013-02-18 22:33:59
【问题描述】:

我想以编程方式解密 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 中删除本地加密?

【问题讨论】:

  • 我很好奇,如果您有 Notes 标识和密码,为什么要解密这些文件。是为了存档吗?我不经常加密本地数据库,但当我加密时,总是有充分的理由。
  • 解密后,NSF 将通过自动电子发现系统提取元数据和正文内容。虽然系统能够接受 ID 文件和密码,但必须为每个 NSF 手动选择一个,这是不可取的。
  • 啊,是的,我忘记了电子发现。现在这完全有道理。我预计最大的烦恼将是创建非加密版本的时间。
  • @JacobQuisenberry :我们必须在这里开发类似的软件,以准备迁移。本地档案必须解密,但我们不想让用户自己处理这个过程。您成功完成申请了吗?

标签: lotus-notes lotus-domino lotus interop-domino


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多