大家好,我现在生成了一个exe文件,我想用JAVA编一个加密软件,功能是在运行这个exe文件的时候可以先要用户输入注册码,输入正确了才执行这个EXE文件,这样可以实现吗??请大家讲一下思路吧!
解决方案 »
- 问一下反射的优点?
- [求助][在线等……]我的这个程序有点问题,请求高手帮忙!
- JAVA基础问题(IO)?
- 一个小程序中的几个棘手的小问题
- 面对java培训材料你敢说是java专家么?(java培训材料连载之一)
- 像MSN有人登陆时弹出的一个小框用JAVA怎么实现的?
- 初学者学JAVA用什么书好呢?
- exception in thread "main" java.lang.NoclassDefFoundError:***
- String里如何替换特定的字符窜?
- 汉字组成的字符串转成char[]数组,再组合起来就出现乱码
- 求教~为什么第二个catch后不能有内容?
- 救命啊!高手快来不行了!关于FormFile的上传!在线等!
主要部分是加密, 建议把所有数据都读到一个byte数组 用1个BYTE数挨个减去原始数据. 保存为另一个文件 ,把原始文件删除. 解密的时候再用这个BYTE数挨个减一下就还原了.
byte magicNum = 10 //随便定义
int bufferSize = 16 // 同上
FileInputStream fin = new FileInputStream(f1);
FileOutputStream fout = new FileOutputStream(f2);
long fileLength = f1.length();
byte [] data = new byte[bufferSize];
int parts = (int)(fileLength/bufferSize);
if (parts == 0) {
int bytesLeft = fin.read(data);
for (int i = 0; i < bytesLeft; i++) {
data[i] = (byte)(magicNum - data[i]);
}
if (bytesLeft != -1) {
fout.write(data,0,bytesLeft);
System.out.print("100%");
}
}
else {
for (int i = 0; i < parts; i++) {
fin.read(data);
for (int j = 0; j < bufferSize;j++) {
data[j] = (byte)(magicNum - data[j]);
}
fout.write(data);
}
int bytesLeft = fin.read(data);
for (int i = 0; i < bytesLeft; i++) {
data[i] = (byte)(magicNum - data[i]);
}
if (bytesLeft != -1) {
fout.write(data,0,bytesLeft);
}
f1.delete();
fin.close();
fout.close();
}
}
catch (IOException e) {
e.printStackTrace();
}
}