【问题标题】:Get Private & Public Key For Encryption and Decryption of Mails in Lotus Domino获取用于在 Lotus Domino 中加密和解密邮件的私钥和公钥
【发布时间】:2012-02-28 12:19:43
【问题描述】:

我知道 id 文件包含私钥和公钥。公钥在 Id 文件下的证书内,私钥在 id 文件内但不在证书中。 问题是如何通过我的 java 代码获取这些密钥。我需要加密和解密邮件。

【问题讨论】:

    标签: java security lotus-domino lotus


    【解决方案1】:

    可以在 Domino 目录中找到公钥。您不需要做任何特别的事情来加密电子邮件。 Notes API 会自动为您完成这项工作。

    解密是另一回事。私钥的全部意义在于它是私有的。输入密码后,您可以使用当前 ID 文件中的私钥,但您无法访问任何其他私钥。私钥是使用密码派生密钥加密的,如果有任何方法可以绕过该加密,它就不是私有的!

    因此,如果您尝试解密发送给用户的消息,唯一的方法是使用该用户的密码将当前 ID 切换到该用户的 ID 文件。

    【讨论】:

    • 感谢您的快速回复。假设我有一个 Document 'd' 。我的 id 文件是 'sachin.id' 我如何在 java 中对其进行加密和解密?如何在我的 java 代码中切换 id。
    • AFAIK,不支持直接在 Java 代码中切换 ID 的方式。 C API 调用 SECFMSwitchToIDFile 会做到这一点,但你必须弄清楚从 Java 调用它的细节——而且我不能 100% 确定如果你这样做,Notes Java 类会按预期运行。
    • 我听说有些人解决这个问题的另一种方法是使用 Session.SetEnvironmentVar 将 notes.ini 中的 KeyFilename 条目更改为指向您的 ID 文件,然后启动一个新的 Java 程序,它的工作将完成这项工作,然后将 KeyFilename 改回原来的样子。如果 ID 文件有密码,您将需要手动输入密码——或者您可以使用 Notes C API 的 Extension Manager 功能来提供密码。如果您的 Java 代码作为代理运行,我怀疑这是否能正常工作。
    【解决方案2】:

    最简单的方法是为所有用户创建一个共享证书并将其添加到您的 Java 代码中。

    以下示例向您展示了如何创建自签名证书。

    http://www-10.lotus.com/ldd/ddwiki.nsf/dx/Connecting_to_a_Domino_server_over_SSL_in_Java_using_a_self_signed_certificate._

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2017-01-04
      • 2023-03-24
      • 2017-11-25
      • 1970-01-01
      相关资源
      最近更新 更多