为了账号安全,请及时绑定邮箱和手机立即绑定

混淆隐藏一些算法

混淆隐藏一些算法

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

2 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

让我们澄清一下你对混淆的误解:

  • 你不这样做对你的源代码。在java世界中,如果你混淆了二进制传递,换句话说:你的类文件。或者确切地说:它主要是关于类文件混淆,有源代码混淆的商业工具。

  • 混淆仍然在Android领域内使用,但“纯粹”的java商店,这些天很少使用

最重要的是:“默默无闻的安全”很少奏效。

如果您真的非常认真地在客户端(无法控制它)运行代码,那么最好在本机代码中执行该部分,并为该部分提供机器编译的二进制文件。


查看完整回答
反对 回复 2019-05-15
  • 2 回答
  • 0 关注
  • 584 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号