package com.cn;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.security.MessageDigest;
//简单的小例子
public class EncryptionDeciphering {
public EncryptionDeciphering(){
}
/*
* 读取文件
*/
public String getFile(){
File file = null;
BufferedReader reader = null;
StringBuilder builder = null;
try{
builder = new StringBuilder(32);
file = new File("D:/test.txt");
reader = new BufferedReader(new FileReader(file));
String temp = "";
while((temp = reader.readLine())!= null){
builder.append(temp);
}
}catch(Exception e){
e.printStackTrace();
}finally{
try{
reader.close();
}catch(Exception e){
e.printStackTrace();
}
}
return builder.toString();
}
/**
* 写入文件
*/
public void writeFile(String str){
PrintWriter print =null;
File file = null;
try{
file = new File("D:/test.txt");
print = new PrintWriter(file);
print.write(str);
print.flush();
}catch(Exception e){
e.printStackTrace();
}finally{
print.close();
}
}
/*
* @param:加密字符串、加密算法
*/
public String getEncString(String encryptStr,String algorithm){
StringBuilder builder = null;
try{
MessageDigest md = MessageDigest.getInstance(algorithm);//提供信息摘要算法功能
builder = new StringBuilder(32);
md.update(encryptStr.getBytes());
byte[] b = md.digest();
for(int i = 0; i< b.length; i++){
String temp = Integer.toHexString(b[i] & 0xff); //转换成16进制
if (temp.length() < 2){
builder.append("0");// 不足两位,补0
}
builder.append(temp);
}
}catch(Exception e){
e.printStackTrace();
}
return builder.toString();
}
public static void main(String [] args){
EncryptionDeciphering q = new EncryptionDeciphering();
String date = q.getFile();//读取文件
String str = q.getEncString(date, "MD5");//进行加密操作
System.out.println("加密后的数据1==========:" + str);
q.writeFile(str);//将加密后的数据写入文件
}
}