Java 作为企业级开发,代码是否需要做混淆?

2019-03-17 20:48:56 +08:00
 maxxfire
我不是做 Java 的,但对这个问题比较感兴趣。
Java/字节码很容易被反编译,那为何不影响其成为企业级开发的王者,或者说企业级环境下是否要做代码混淆?
4390 次点击
所在节点    程序员
28 条回复
Cat73
2019-03-17 20:55:19 +08:00
因为一般写的都是业务代码,没什么技术点,又不是什么创新发明。。没什么需要保密的。。。

一般需要保密是为了防止自己写的垃圾代码被人挖到漏洞然后被黑了😂

真的为了防止别人破解你 XX 功能实现原理的,emmm 企业级开发寥寥无几,面对公众的东西可能还有点。。
murmur
2019-03-17 20:57:01 +08:00
关键的东西云服务 要么就卖服务 只能这样了 真的要混淆肯定要落进 c 层
putaozhenhaochi
2019-03-17 20:58:19 +08:00
Java 作服务端一般不用。 作安卓的需要
WordTian
2019-03-17 20:59:32 +08:00
给你坨没编译的代码你都不一定乐意看,或者说不一定能理顺逻辑。更别提编译过的代码了

公司有一定安全性需求那就混淆呗,也就一个配置文件的事

企业开发首选是因为国内 java 的生态,库多,程序员多,开发出来的东西不容易有大问题
maxxfire
2019-03-17 21:07:45 +08:00
@Cat73 这个理由不错,哈哈
maxxfire
2019-03-17 21:10:52 +08:00
@WordTian 所以 java 它 1 臃肿 2 性能差 3 内存占用高,然后它还是上位了,这是我最佩服 java 的地方
sampeng
2019-03-17 21:34:39 +08:00
是能反编译不错。android 需要混淆是因为人人都能拿到 apk 包。字节码被玩坏了。但是服务端嘛。首先、你要能进到服务器。我就是把密码写在文件上,你进不来…什么都是假的。你就是军工级加密。只要让我进来了…对不起,你就是一个在裸奔的舞女
DsuineGP
2019-03-17 21:39:18 +08:00
@maxxfire 性能..差..?那你是没跟 node,py 比..
能这么普及的原因是比 java 性能好的,没他简单;比他简单的没他性能好;比他简单又比他性能好的,库又没他多;
prenwang
2019-03-17 22:29:45 +08:00
@maxxfire java 性能不差,不了解 jit 不要乱说, 内存占用高只能说他不适合低配或嵌入式等资源紧张的场景,实力企业配置的服务器内存都用不完,所以内存根本不是问题,磁盘更不是问题,Elastic 处理 PB 级的数据,自身的臃肿比起来如九六一毛,java 能繁荣是因为他有好爹,好干爹,朋友圈都是大腕,项目做起来都是大框架大格局。

一般人是不懂王健林的“小目标”的。
anguiao
2019-03-17 22:33:12 +08:00
JVM 已经是最强的 VM 了,如果这还算性能差的话,那我也没什么好反驳的。
sampeng
2019-03-17 22:42:48 +08:00
@DsuineGP 我以前也是觉得 java 慢。但和 node 比起复杂业务的时候。node 得叫爷爷…
jzmws
2019-03-17 22:56:51 +08:00
首先 Java 屏蔽了底层硬件的不同,让程序员专注于业务
rogwan
2019-03-17 23:01:38 +08:00
@DsuineGP 比他简单又比他性能好的,库又没他多
你是说 go 吗?
sampeng
2019-03-17 23:11:46 +08:00
@rogwan go 比 java 的库多? go 才流行多久。java 流行了多久… go 能企业级用的库。在每个领域下都只有为数不多的几个…
wmhx
2019-03-17 23:15:30 +08:00
@rogwan C 也同理.
Cat73
2019-03-18 00:06:41 +08:00
@maxxfire Java 运行速度并不是太慢,内存吃的多一点也可以加个内存条解决,Java 解决的是可以用水平不是太高的程序员写不是太复杂的代码(只需要业务代码、CRUD 什么的,不需要自己管理内存呀指针呀什么复杂的东西),就能快速做出差不多能用,性能不是太差的东西

对管理者大概就是,低成本(不需要太强的人)快速出可接受的东西(性能不是太烂,不是太容易出漏洞)

转隔壁 Objective-C 看看,自己管理内存多恶心。。

哪怕到了 Swift,也会存在不支持自动回收循环引用对象的问题。。

隔壁 C# 其实这方面做的也不差,开发者少大概是因为前些年只能跑在 Windows 上,然后 Windows emmm,屁事比较多,我们的服务器版 Windows 虽然不强制更新,但还是整天一连上就提示有更新,而且严格来说并不免费,有额外的成本,而且系统吃掉的硬件明显要高于 Linux。。。

以上为个人理解喵~
xuanbg
2019-03-18 08:28:44 +08:00
一般的 Java 代码都部署在服务器上,外人根本接触不到,所以也就不需要混淆加壳这些乱七八糟的。
maxxfire
2019-03-18 08:48:52 +08:00
@Cat73 除了企业级后端也就算了,现在连做大数据也用 Java 了,这让以性能著称的 C++情何以堪。。
Allianzcortex
2019-03-18 09:04:41 +08:00
@maxxfire 更多是路径依赖吧,最早的 hadoop 是用 java 写的,之后就都离不开 JVM 生态圈了,那个时候万兆网卡和 SSD 还没这么普及开,IO 速度比处理速度重要多了。G 家三件套没有开源应该是用 C++ 写的,clickhouse 也是 C++ 写的
hellowes
2019-03-18 09:25:44 +08:00
没必要,你服务器部署肯定不用担心。 最需要担心的是数据安全

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/545551

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX