1,如何对lib下jar包中class文件解密选中项目,邮件 properties--->Java build Path-->libraries--->add jars;save; 最好把这个jar包复制到你当前项目目录下,然后在添加 。在添加ssh支持的时候有个选项叫 copy library to project folder,然后指定lib目录即可 。如果是已经建立好了,可以将项目部署到tomcat中 , 然后将部署好的项目中的lib里面的所有jar复制到myeclipse项目的lib下【class加密解密,如何对lib下jar包中class文件解密】
2,如何对java的class类进行加密加密不了 。Java类是字节码实现的 。怎么也是加密不了的 。需要加密的话,也最多是代码混淆,写得让人家看不懂 。确实需要加密借用C/C++语言实现加密算法,然后调用该实现来加密 。C/C++反编译做的稍微好点 , 但是遇到C或汇编高手的话还是会被解密的 。...java class文件加密解密package com.copy.encrypt;import java.io.file;import java.io.fileinputstream;import java.io.filenotfoundexception;import java.io.fileoutputstream;import java.io.ioexception;import java.io.inputstream;import java.io.outputstream;import java.io.randomaccessfile;public class fileencryptanddecrypt/*** 文件file进行加密* @param fileurl 文件路径* @param key 密码* @throws exception*/public static void encrypt(string fileurl, string key) throws exceptionfile file = new file(fileurl);string path = file.getpath();if(!file.exists())return;}int index = path.lastindexof("\\");string destfile = path.substring(0, index)+"\\"+"abc";file dest = new file(destfile);inputstream in = new fileinputstream(fileurl);outputstream out = new fileoutputstream(destfile);byte[] buffer = new byte[1024];int r;byte[] buffer2=new byte[1024];while (( r= in.read(buffer)) > 0)for(int i=0;i{ byte b=buffer[i]; buffer2[i]=b==255?0:++b; } out.write(buffer2, 0, r); out.flush(); } in.close(); out.close(); file.delete(); dest.renameto(new file(fileurl)); appendmethoda(fileurl, key); system.out.println("加密成功"); } /** * * @param filename * @param content 密钥 */ public static void appendmethoda(string filename, string content) { try { // 打开一个随机访问文件流 , 按读写方式 randomaccessfile randomfile = new randomaccessfile(filename, "rw"); // 文件长度,字节数 long filelength = randomfile.length(); //将写文件指针移到文件尾 。randomfile.seek(filelength); randomfile.writebytes(content); randomfile.close(); } catch (ioexception e) { e.printstacktrace(); } } /** * 解密 * @param fileurl 源文件 * @param tempurl 临时文件 * @param ketlength 密码长度 * @return * @throws exception */ public static string decrypt(string fileurl, string tempurl, int keylength) throws exception{ file file = new file(fileurl); if (!file.exists()) { return null; } file dest = new file(tempurl); if (!dest.getparentfile().exists()) { dest.getparentfile().mkdirs(); } inputstream is = new fileinputstream(fileurl); outputstream out = new fileoutputstream(tempurl); byte[] buffer = new byte[1024]; byte[] buffer2=new byte[1024]; byte bmax=(byte)255; long size = file.length() - keylength; int mod = (int) (size%1024); int div = (int) (size>>10); int count = mod==0?div:(div+1); int k = 1, r; while ((k <= count && ( r = is.read(buffer)) > 0)) { if(mod != 0 && k==count) { r = mod; } for(int i = 0;i < r;i++) { byte b=buffer[i]; buffer2[i]=b==0?bmax:--b; } out.write(buffer2, 0, r); k++; } out.close(); is.close(); return tempurl; } /** * 判断文件是否加密 * @param filename * @return */ public static string readfilelastbyte(string filename, int keylength) { file file = new file(filename); if(!file.exists())return null; stringbuffer str = new stringbuffer(); try { // 打开一个随机访问文件流,按读写方式 randomaccessfile randomfile = new randomaccessfile(filename, "r"); // 文件长度,字节数 long filelength = randomfile.length(); //将写文件指针移到文件尾 。for(int i = keylength ; i>=1 ; i--){ randomfile.seek(filelength-i); str.append((char)randomfile.read()); } randomfile.close(); return str.tostring(); } catch (ioexception e) { e.printstacktrace(); } return null; } }
3,怎么对加密的JAVA class文件进行解密首先用词就错了.class文件是java文件编译后的文件.class文件转换成java文件叫反编译你下载个反编译软件,把class文件丢进去就可以了有软件是可以进行反编译的,有一个是JD_GUD,搜一下关键字java反编译 。JAVA class文件加密解密package com.copy.encrypt;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.io.RandomAccessFile;public class FileEncryptAndDecrypt/*** 文件file进行加密* @param fileUrl 文件路径* @param key 密码* @throws Exception*/public static void encrypt(String fileUrl, String key) throws ExceptionFile file = new File(fileUrl);String path = file.getPath();if(!file.exists())return;}int index = path.lastIndexOf("\\");String destFile = path.substring(0, index)+"\\"+"abc";File dest = new File(destFile);InputStream in = new FileInputStream(fileUrl);OutputStream out = new FileOutputStream(destFile);byte[] buffer = new byte[1024];int r;byte[] buffer2=new byte[1024];while (( r= in.read(buffer)) > 0)for(int i=0;i<r;i++)byte b=buffer[i];buffer2[i]=b==255?0:++b;}out.write(buffer2, 0, r);out.flush();}in.close();out.close();file.delete();dest.renameTo(new File(fileUrl));appendMethodA(fileUrl, key);System.out.println("加密成功");}/**** @param fileName* @param content 密钥*/public static void appendMethodA(String fileName, String content)try// 打开一个随机访问文件流,按读写方式RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");// 文件长度 , 字节数long fileLength = randomFile.length();//将写文件指针移到文件尾 。randomFile.seek(fileLength);randomFile.writeBytes(content);randomFile.close();} catch (IOException e)e.printStackTrace();}}/*** 解密* @param fileUrl 源文件* @param tempUrl 临时文件* @param ketLength 密码长度* @return* @throws Exception*/public static String decrypt(String fileUrl, String tempUrl, int keyLength) throws ExceptionFile file = new File(fileUrl);if (!file.exists())return null;}File dest = new File(tempUrl);if (!dest.getParentFile().exists())dest.getParentFile().mkdirs();}InputStream is = new FileInputStream(fileUrl);OutputStream out = new FileOutputStream(tempUrl);byte[] buffer = new byte[1024];byte[] buffer2=new byte[1024];byte bMax=(byte)255;long size = file.length() - keyLength;int mod = (int) (size%1024);int div = (int) (size>>10);int count = mod==0?div:(div+1);int k = 1, r;while ((k <= count && ( r = is.read(buffer)) > 0))if(mod != 0 && k==count)r =mod;}for(int i = 0;i < r;i++)byte b=buffer[i];buffer2[i]=b==0?bMax:--b;}out.write(buffer2, 0, r);k++;}out.close();is.close();return tempUrl;}/*** 判断文件是否加密* @param fileName* @return*/public static String readFileLastByte(String fileName, int keyLength)File file = new File(fileName);if(!file.exists())return null;StringBuffer str = new StringBuffer();try// 打开一个随机访问文件流,按读写方式RandomAccessFile randomFile = new RandomAccessFile(fileName, "r");// 文件长度,字节数long fileLength = randomFile.length();//将写文件指针移到文件尾 。for(int i = keyLength ; i>=1 ; i--)randomFile.seek(fileLength-i);str.append((char)randomFile.read());}randomFile.close();return str.toString();} catch (IOException e)e.printStackTrace();}return null;}}有软件是可以进行反编译的,有一个是jd_gud,搜一下关键字java反编译 。
推荐阅读
- iostreamh报错,C2008版的include为什么会错误
- 手机上的c语言编译器,C语言编译器中文版可以手机下载的最好我手机5320XM
- 少儿机器人编程是学的什么专业,我想学做机器人不知道在大学这叫什么专业谢谢了
- 手机怎么做编程,用手机怎么编制程序
- 手机制作游戏的APP,哪有免费的做游戏的软件
- 微信小程序免费版官网,微信小程序下载
- applemusic免费领取,apple music需要充值才可以开通免费试用吗
- 写代码视频教程,源代码的编写教程
- apple官方商城点付款没反应,我在苹果官网买手机最后支付钱的时候怎么不行那还有就是出来一页