保护源代码部分

Cra*_*uin 3 java encryption

我正在编写一个连接到服务器并读取给定队列中的消息的Java类.

我想保护用户名和密码,它现在在源代码中显示为纯文本.

我想知道的是,有什么好办法呢?如果我在文本文件中加密用户名和密码,我是否需要以明文形式存储访问此文件的任何源代码中的密钥?然后决定使用我的班级的任何其他人都可以访问这些字段.

没有人可以输入密钥的提示,因为该类将由系统自动使用.

编辑:这将成为一个java lib文件.但那些很容易被反编译,因此基本上都是原始的类文件,对吧?并且受到保护的人是其他系统的开发人员,他们将获得对此lib文件的访问权限.

我的最终目标:是让用户名和密码字符串在任何地方都不显示为纯文本,并且尽可能难以破解.

Jan*_*omä 5

这是不可能的.即使您加密登录名/密码并将其存储在某处(可能是您的类或外部文件),您仍然需要以纯文本格式保存加密密钥.这实际上比在纯文本中保存用户名/密码要好一些,实际上我会避免这样做,因为它会产生错误的安全感.

因此,我建议您的类将用户名/密码作为参数,并且使用您的类的系统必须关心保护凭据.它可以通过要求最终用户输入凭据或将它们存储到外部文件中来实现,该外部文件只对您的进程正在运行的操作系统用户可读.

编辑:您可能还会考虑使用OAuth等使用令牌而不是密码的机制.令牌具有有限的使用寿命并且与特定目的相关联,因此它们是访问凭证的良好替代方案.因此,您的最终用户可以使用他们的Windows凭据获取访问令牌,然后在您的类中使用该凭据来调用受保护的服务.

  • 在这种情况下,这听起来像是想用技术解决方案解决社会问题.这就像你想要修理你的汽车但你不相信机械师足以给他车钥匙.也许你可以发现有限的访问凭证,这些凭证允许你的开发人员只做他们应该对目标资源做的事情(例如只读访问),或者在开发人员完成工作后将它们改为其他东西. (3认同)