Java实现Base64给文件加密、解密

[java] view plain copy
print ?
  1. package test.base64;  
  2. import java.io.FileInputStream;  
  3. import java.io.FileOutputStream;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6. import java.io.OutputStream;  
  7. import sun.misc.BASE64Decoder;  
  8. import sun.misc.BASE64Encoder;  
  9. /** 
  10. * 服务器之间传递图片 
  11. */  
  12. public class TestCase {  
  13.   
  14. public static void main(String[] args) {  
  15. // 将图片文件转化为字节数组字符串,并对其进行Base64编码处理  
  16. String strImg = GetImageStr();  
  17. System.out.println(strImg);  
  18. // 对字节数组字符串进行Base64解码并生成图片  
  19. GenerateImage(strImg);  
  20. }  
  21. public static String GetImageStr() {  
  22. String imgFile = "d:\\java.pdf";// 待处理的图片  
  23. InputStream in = null;  
  24. byte[] data = null;  
  25. // 读取图片字节数组  
  26. try {  
  27. in = new FileInputStream(imgFile);  
  28. data = new byte[in.available()];  
  29. in.read(data);  
  30. in.close();  
  31. catch (IOException e) {  
  32. e.printStackTrace();  
  33. }  
  34. // 对字节数组Base64编码  
  35. BASE64Encoder encoder = new BASE64Encoder();  
  36. return encoder.encode(data);// 返回Base64编码过的字节数组字符串  
  37. }  
  38. public static boolean GenerateImage(String imgStr) {  
  39. if (imgStr == null){ // 图像数据为空  
  40. return false;  
  41. }  
  42. BASE64Decoder decoder = new BASE64Decoder();  
  43. try {  
  44. // Base64解码  
  45. byte[] b = decoder.decodeBuffer(imgStr);  
  46. for (int i = 0; i < b.length; ++i) {  
  47. if (b[i] < 0) {// 调整异常数据  
  48. b[i] += 256;  
  49. }  
  50. }  
  51. // 生成jpg图片  
  52. String imgFilePath = "d:\\new.pdf"// 新生成的图片  
  53. OutputStream out = new FileOutputStream(imgFilePath);  
  54. out.write(b);  
  55. out.flush();  
  56. out.close();  
  57. return true;  
  58. catch (Exception e) {  
  59. return false;  
  60. }  
  61. }  
  62. }  
package test.base64;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
/**
* 服务器之间传递图片
*/
public class TestCase {

public static void main(String[] args) {
// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理
String strImg = GetImageStr();
System.out.println(strImg);
// 对字节数组字符串进行Base64解码并生成图片
GenerateImage(strImg);
}
public static String GetImageStr() {
String imgFile = "d:\\java.pdf";// 待处理的图片
InputStream in = null;
byte[] data = null;
// 读取图片字节数组
try {
in = new FileInputStream(imgFile);
data = new byte[in.available()];
in.read(data);
in.close();
} catch (IOException e) {
e.printStackTrace();
}
// 对字节数组Base64编码
BASE64Encoder encoder = new BASE64Encoder();
return encoder.encode(data);// 返回Base64编码过的字节数组字符串
}
public static boolean GenerateImage(String imgStr) {
if (imgStr == null){ // 图像数据为空
return false;
}
BASE64Decoder decoder = new BASE64Decoder();
try {
// Base64解码
byte[] b = decoder.decodeBuffer(imgStr);
for (int i = 0; i < b.length; ++i) {
if (b[i] < 0) {// 调整异常数据
b[i] += 256;
}
}
// 生成jpg图片
String imgFilePath = "d:\\new.pdf"; // 新生成的图片
OutputStream out = new FileOutputStream(imgFilePath);
out.write(b);
out.flush();
out.close();
return true;
} catch (Exception e) {
return false;
}
}
}

你可能感兴趣的:(A6100-加密解密)