Cipher c=CiphergetInstance("AES");
cinit(cENCRYPT_MODE,new SecretKeySpec("1111111111111111"getBytes(),"AES"));
FileOutputStream fos=new FileOutputStream("/1dat");
foswrite(cdoFinal("我神不是人啊~~"getBytes()));
cinit(cDECRYPT_MODE,new SecretKeySpec("1111111111111111"getBytes(),"AES"));
FileInputStream fin=new FileInputStream("/1dat");
byte b[]=new byte[1024];
Systemoutprintln(new String(cdoFinal(b,0,finread(b))));
不知道你打算怎么加密呢?隐藏又是什么意思?是将多个文件合成一个吗?
因为从 *** 作系统层面来说理应能看到所有合法的文件,因此想要让 *** 作系统都看不到基本上是不可能的(何况Java也是用的 *** 作系统API来实现对文件的 *** 作)。
就加密我说说我的想法吧,首先需要一个加密的算法。这个算法需要满足:算法可逆,双向计算复杂度(时间/空间)低,安全程度高,可靠性高。另外可以考虑并行化来增加性能,因为现在的文件系统大多比较大,管理的东西都不小。
如果能找到这样一个算法,可以对于文件使用二进制的读写(Binary I/O),然后每读到一定大小的数据就进行加密运算,并写入目标加密文件中。如果是解密则是读取数据进行解密运算。
题外话:我觉得实际上做这样一个软件也没有必要,每次存取文件都需要进行大量的计算 *** 作,也很容易破坏cache的局部性原理。如果真的需要对一部分文件进行加密,也有很多现成的工具可用,甚至于是说现在的压缩文件都可以带上密码加密。所以我认为这个软件的前景不大,当然如果只是用来玩一玩也是可以的,只不过算法比较难找而已。(如果用RSA这种级别的算法估计也行的吧……)
可以使用加密锁硬件对java进行加密,可以通过加壳的形式防止代码被反编译,也可以在Java代码中进行开发,硬件加密安全性唯一性更高。可以试试ROCKEY系列加密锁,价格也不贵,加密简单。
可以使用Virbox Protector Standalone 加壳工具对java的class类进行加密,支持各种开发语言的程序加密。可防止代码反编译,更安全,更方便
产品简介
Virbox Protector Standalone提供了强大的代码虚拟化、高级混淆与智能压缩技术,保护您的程序免受逆向工程和非法修改。
Virbox Protector Standalone 将被保护的程序代码转换为虚拟机代码,程序运行时,虚拟机将模拟程序执行,进入和离开虚拟机都有高级代码混淆。虚拟机配合代码混淆可以达到很好的保护效果,尤其是开发者的私有逻辑。高级混淆利用花指令和代码非等价变形等技术,将程序的代码,转换成一种功能上等价,但是难于阅读和理解的代码,可充分干扰静态分析。应用程序的解压缩含有动态密码,让一切自动脱壳工具失效,有效的阻止Net、PE 程序的直接反编译。
特点
多种加密策略:代码虚拟化、高级混淆、智能压缩
性能分析:智能分析引擎,一键分析各个函数模块调用的次数
支持多种开发语言:多种开发语言加壳支持
源码级保护:保护到汇编级别,c#保护IL级别
免费更新:免费版本升级
以上就是关于Java软件如何加密全部的内容,包括:Java软件如何加密、使用java做一个加密和隐藏文件的软件,具体需要怎么做求指导、有没有专门对java加密的方案等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)