A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 鲍霄霄 中级黑马   /  2012-7-17 17:08  /  2297 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

各位大虾,我有一个问题一直没有解决掉,就是我前一阵子做了一点和加密程序有关的东西。我做的也是JAVA EE开发,做完之后要求进行加密,我在网上查了下,有好些方法,比如混淆什么的,最后我打算采用用类的加载器的相关技术来加密class文件,大概思路就是写一个类,那个类用来对其他的类进行加密和解密,就是编码和反编码的意思,程序启动的时候就先加载那个类来对别的类进行解密,然后虚拟机进行加载执行,这点没问题,我现在唯一的问题就是,这个加密类加密了别的类,那样别人是不能用反编译软件反编译了,但这个加密类本身没有加密,那别人如果把这个加密类给反编译了之后,那整个程序不就都可以进行反编译了?所以哪位大虾能告诉我一下,那个加密类该怎么处理?或者出一点更好的解决方案也行,大恩不言谢!

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

2 个回复

正序浏览
按照我的理解,在加密过程中一种比较简单的加密方法就是用一个数去异或一个class字节码中的所有二进制数据,在张孝祥老师的视频中的方法是
public static void jiami(InputerStream is,OutputStream os)throws Exception
{
     int b=-1;
    while((b=is.read())!=-1)
        {
           os.write(b^password);
        }
}
这里面的password为一个变量,只有你自己知道,你可以把这个密码存储在config.properties文件里然后利用IO流读取
这是我的理解,不知道对不对,希望对你有帮助(*^__^*)

评分

参与人数 1技术分 +1 收起 理由
韦念欣 + 1 赞一个!

查看全部评分

回复 使用道具 举报
党巾水 来自手机 中级黑马 2012-7-17 17:50:13
沙发
如果这能很容易做到,那么用免费的windows系统,office,PS等等就成了天方夜谭了。避免被破解,有难度啊
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马