Java 公开源代码中的私有信息

Java 公开源代码中的私有信息,java,encryption,open-source,Java,Encryption,Open Source,我们决定通过github向公众提供我们的源代码。我们有一些无法向公众共享的信息,例如我们的应用程序用来发送电子邮件的电子邮件和一些社交媒体凭据。要保持信息的私密性,最好的做法是什么 我们正在应用程序中使用java in-app engine。加密您希望保密的信息,并尽量避免在代码中泄漏引用(如果可以,最好通过API从其他非本地源解密).加密您希望保密的信息,并尽量避免在代码中泄漏引用(如果可以,最好通过API从非本地的其他源进行解密)。将该数据保存在本地计算机或其他计算机上的属性文件中,非公共存

我们决定通过github向公众提供我们的源代码。我们有一些无法向公众共享的信息,例如我们的应用程序用来发送电子邮件的电子邮件和一些社交媒体凭据。要保持信息的私密性,最好的做法是什么


我们正在应用程序中使用java in-app engine。

加密您希望保密的信息,并尽量避免在代码中泄漏引用(如果可以,最好通过API从其他非本地源解密).

加密您希望保密的信息,并尽量避免在代码中泄漏引用(如果可以,最好通过API从非本地的其他源进行解密)。

将该数据保存在本地计算机或其他计算机上的属性文件中,非公共存储库。

将该数据保存在本地计算机上或其他非公共存储库中的属性文件中。

从属性文件或数据库读取该数据,不要将该文件/数据库包含在源存储库中。如果您以前在存储库中提交了带有私有信息的代码,则需要创建不包含任何私有信息历史记录的新存储库。据我所知,无法从现有存储库中删除这些信息并保留您的历史记录。

从属性文件或数据库中读取这些数据,不要将文件/数据库包含在源存储库中。如果您以前在存储库中提交了带有私有信息的代码,则需要创建不包含任何私有信息历史记录的新存储库。据我所知,没有办法从现有存储库中删除这些信息并保留您的历史记录。

这一点。如果你不想让这些信息公开,就不要把它放在公开回购中。如果您不想将信息公开,请不要将其放在公共repo中。只需将代码和配置分开,即将其放在github上未共享的文件中。如果未在属性文件中设置,您还可以在程序启动时请求配置。但如果你想公开代码,让代码包含那封神奇的电子邮件,那你就倒霉了。在这种情况下,您应该让您的应用程序与某个代理进行通信,该代理将此数据添加到应用程序的信息中,或者通过社交媒体网站双向传递信息。然后,您可以拥有一些自定义身份验证,这些身份验证可以转换为电子邮件或社交媒体。只需将代码和配置分开,即将其保存在github上未共享的文件中。您还可以在程序启动时请求配置,以防未在属性文件中设置。但如果你想公开代码,让代码包含那封神奇的电子邮件,那你就倒霉了。在这种情况下,您应该让您的应用程序与某个代理进行通信,该代理将此数据添加到应用程序的信息中,或者通过社交媒体网站双向传递信息。然后你可以有一些自定义的身份验证,它被翻译成电子邮件或社交媒体。在某个时候,这些数据必须被解码/解密——使用repo提供的数据——或者在repo中使用它是没有用的。这一点很好。我不太清楚,为什么任何人都想以任何方式将电子邮件用户名/密码等硬编码到应用程序中?为什么不创建一个用户界面,允许用户输入自己的电子邮件/密码来发送电子邮件?因为这对于测试项目来说更简单,一旦你意识到你不应该这样做,那就太晚了。在某个时候,这些数据必须被解码/解密——使用回购协议提供的数据——或者把它放在回购协议中是没有用的。这一点很好。我不太清楚,为什么任何人都想以任何方式将电子邮件用户名/密码等硬编码到应用程序中?为什么不创建一个用户界面,允许用户输入自己的电子邮件/密码来发送电子邮件呢?因为这对于测试项目来说更简单,一旦你意识到你不应该这样做,那就太晚了。