我正在研究一个java客户端/服务器应用程序。每个用户必须能够通过客户端应用程序(用数字签名标记它们)或手动创建和修改文件(包含一些敏感数据)(标记错误签名的可能性为99.99999%)。签名不使用客户端标识,只使用文件的内容,这意味着创建完全相同文件的两个远程客户端将最终得到两个具有完全相同签名的文件。
在做了利弊后,我最终考虑使用混淆来防止恶意用户,而不是使用逆向工程来找到为给定文件提供数字签名的算法。
但是,如果我理解正确,混淆会使代码难以为人类阅读,更难理解,但我的目标更多是将算法隐藏在数字签名背后。关于如何制作它的任何想法:
难以阅读?
很难找到?
目前我的想法是:
使用非常随意的名字和一些无用的治疗方法
将它放在一个随机的随机类中,并使用来自随机位置的东西
删除评论
随机化
另外,我不确定如何编译和逆向工程。
当编译代码时,我曾经认为变量在“ 方法区域 ”中被昵称,并且逆向工程将为我们提供一个代码,其中包含名为a,b,c等的变量。但它似乎不是现在我考虑它是有道理的,因为在java中可以进行反射,我是否在最后一部分?
总而言之,我不确定这将如何阻止用户反转我的代码(变量名称的部分除外)。
精慕HU
相关分类