java使用Base64实现文件加密解密
本文实例为大家分享了Java实现Base64给文件加密、解密的具体代码,供大家参考,具体内容如下
packagetest.base64; importjava.io.FileInputStream; importjava.io.FileOutputStream; importjava.io.IOException; importjava.io.InputStream; importjava.io.OutputStream; importsun.misc.BASE64Decoder; importsun.misc.BASE64Encoder; /** *服务器之间传递图片 */ publicclassTestCase{ publicstaticvoidmain(String[]args){ //将图片文件转化为字节数组字符串,并对其进行Base64编码处理 StringstrImg=GetImageStr(); System.out.println(strImg); //对字节数组字符串进行Base64解码并生成图片 GenerateImage(strImg); } publicstaticStringGetImageStr(){ StringimgFile="d:\\java.pdf";//待处理的图片 InputStreamin=null; byte[]data=null; //读取图片字节数组 try{ in=newFileInputStream(imgFile); data=newbyte[in.available()]; in.read(data); in.close(); }catch(IOExceptione){ e.printStackTrace(); } //对字节数组Base64编码 BASE64Encoderencoder=newBASE64Encoder(); returnencoder.encode(data);//返回Base64编码过的字节数组字符串 } publicstaticbooleanGenerateImage(StringimgStr){ if(imgStr==null){//图像数据为空 returnfalse; } BASE64Decoderdecoder=newBASE64Decoder(); try{ //Base64解码 byte[]b=decoder.decodeBuffer(imgStr); for(inti=0;i小编另分享一段java代码实现对文件的base64加密解密
Base64编码方法:将每三个8bit的字节转换为四个6bit的字节,其中,转换之后的这四个字节中每6个有效Bbit为有效数据,空余的那2个用0补上成为一个字节,java中可直接调用算法进行base64加密解密。
publicclassbase64{ publicstaticvoidmain(String[]args){ Filefile=newFile("D:\\base64.txt"); Stringresult=getFromBase64(file2String(file)); System.out.println(result); } //文件转字符串 publicstaticStringfile2String(Filefile){ try{ BufferedReaderbuffer=newBufferedReader(newFileReader(file)); StringBuildersb=newStringBuilder(); Stringtemp; while((temp=buffer.readLine())!=null){ sb.append(temp); } returnsb.toString(); }catch(FileNotFoundExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); returnnull; }catch(IOExceptione){ //TODOAuto-generatedcatchblock e.printStackTrace(); returnnull; } } //加密 publicstaticStringgetBase64(Stringstr){ byte[]b=null; Strings=null; try{ b=str.getBytes("utf-8"); }catch(UnsupportedEncodingExceptione){ e.printStackTrace(); } if(b!=null){ s=newBASE64Encoder().encode(b); } returns; } //解密 publicstaticStringgetFromBase64(Stringstr){ byte[]b=null; Stringresult=null; if(str!=null){ BASE64Decoderdecoder=newBASE64Decoder(); try{ b=decoder.decodeBuffer(str); result=newString(b,"utf-8"); }catch(Exceptione){ e.printStackTrace(); } } returnresult; } }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。