黑马程序员技术交流社区
标题:
自己写了个加密解密的小程序,懒得写界面了,一起研究研究
[打印本页]
作者:
jiajun
时间:
2016-8-6 13:04
标题:
自己写了个加密解密的小程序,懒得写界面了,一起研究研究
/**
对文件进行加密处理
方法:
1.定义字节输入流接收文件地址
2.对读取到的字节进行异或运算^28
3.将新的字节文件写入到文件中
*/
import java.io.*;
public class LockFile
{
public static void main(String[] args)
{
//lockFile("D:\\Java\\jdk1.8.0_92\\study\\Test\\Beer.java");
unLockFile("D:\\Java\\jdk1.8.0_92\\study\\Test\\Beer.java.lock");
}
public static void lockFile(String adrs)
{
FileInputStream fis=null; //定义字节输入流用于读取文件
FileOutputStream fos=null; //定义字节写出流用于写出文件
File file=null;
try
{
file=new File(adrs);
fis=new FileInputStream(file);
fos=new FileOutputStream(adrs+".lock");
byte[] temp=new byte[1024*4];//定义缓冲数组
int len=0;//定义字节流写入缓冲数组长度
while ((len=fis.read(temp))!=-1)
{
for (int i=0;i<len ;i++ )
{
temp[i]=(byte)(temp[i]^28); //对字节数组进行加密处理
}
fos.write(temp,0,len); //加密后的字节写入新文件
}
}
catch (IOException e)
{
return;
}
finally
{
try
{
if (fis!=null)
{
fis.close();
}
}
catch (IOException e)
{
}
try
{
if (fos!=null)
{
fos.close();
}
}
catch (IOException e)
{
}
}
file.delete();
}
public static void unLockFile(String adrs)
{
FileInputStream fis=null; //定义字节输入流用于读取文件
FileOutputStream fos=null; //定义字节写出流用于写出文件
File file=null;
try
{
file=new File(adrs);
fis=new FileInputStream(file);
FileNameOperation fno=new FileNameOperation(file);
fos=new FileOutputStream(fno.removeSuffix());
byte[] temp=new byte[1024*4];//定义缓冲数组
int len=0;//定义字节流写入缓冲数组长度
while ((len=fis.read(temp))!=-1)
{
for (int i=0;i<len ;i++ )
{
temp[i]=(byte)(temp[i]^28); //对字节数组进行加密处理
}
fos.write(temp,0,len); //加密后的字节写入新文件
}
}
catch (IOException e)
{
return;
}
finally
{
try
{
if (fis!=null)
{
fis.close();
}
}
catch (IOException e)
{
}
try
{
if (fos!=null)
{
fos.close();
}
}
catch (IOException e)
{
}
}
file.delete();
}
}
class FileNameOperation //定义一个文件名操作类
{
private File file;
private String adrs;
FileNameOperation(File file)
{
this.file=file;
this.adrs=file.getAbsolutePath();
}
public String removeSuffix()
{
int index=getIndex();
return adrs.substring(0,index);
}
public String getSuffix()
{
int index=getIndex();
return adrs.substring(index,adrs.length()-1);
}
public int getIndex()
{
return adrs.lastIndexOf(".");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2