日期:2014-05-20  浏览次数:20818 次

[求助]关于Class文件加密和spring加载的问题
一个java项目,用的框架是ssh(spring、struts2、hibernate)的,其中还用了Annotation 注释标签。
形如下代码:
Java code

@Entity
@Table(name = "crm_code_clientSort")
public class ClientSort
{
    @Id
    @GeneratedValue(generator = "uuidGenerator")
    @GenericGenerator(name = "uuidGenerator", strategy = "uuid")
    @Column(length = 32)
    private String id;//标识
    
    @Column(length = 6)
    private String code; //编号

    @Column(length = 20)
    private String name; //名称
    
}



Java code

@Controller
@Scope("prototype")
@ParentPackage(value = "abc-default")
@Namespace("/crm/backlog")
@Results(
{     
    @Result(name = "showInfo", location = "/jsp/crm/backlog/showInfo.jsp"),
    @Result(name = "common", location = "/jsp/crm/backlog/list.jsp"),
    @Result(name = "addBacklog", location = "/jsp/crm/backlog/addBacklog.jsp"),
    @Result(name = "updateBacklog", location = "/jsp/crm/backlog/updateBacklog.jsp")
    
})
@InterceptorRef("isLogin")
public class BacklogAction {
    
    @Resource
    private CRM_BacklogService cRM_backlogService; //此对象是spring自动注入的,因为加了@Resource标签
    
    @Resource
    private CodeBean codeBean;    
    
    private Object fere;     
private Backlog dto; 
        //以下略

}


现在需要对项目文件进行加密,网上查了查主要有两种加密方式:
1、混淆
2、对Class文件进行加密,然后自定义ClassLoader

在使用中遇到如下问题:
1、框架使用是spring,对象都由spring统一创建和管理。如果我对class文件进行了加密,那我在那进行解密?
我也看了一些教程,这种加密好像是那种手动创建对象的地方可以。
2、使用混淆时,只能对私有变量做轻度混淆,如果连文件名(类名)也混淆了,spring自动注入就会出错。

请高手给点指点,万分感激!

------解决方案--------------------
java有和密可加吗,呵呵~~~~还是别加了,除非在容器上做手脚。
无论使用哪种加密方法,都阻挡不住破解的脚步。
不公开文档,不公开源码就可以了。有人破解的了,有人还改能二次开发的了啊
------解决方案--------------------
给我留言了,加我Q给你一个class 加密,也是开源的操作起来还是很方便的,我们公司就是用这个加密的
------解决方案--------------------
顶下,一般就是类的混淆,应该在编译好的目录下混淆就可以了吧