BASE64加密 解密

    public static void main(String[] args) {  
        String base64bian =encryptBASE64("d:/项目管理知识体系(第五版)1.pdf");//文件路径
        decryptBASE64(base64bian, "D:/zhouzhiwei.pdf"); //base64编码 输出文件路径及后缀名
        System.out.println(base64bian);  
        }  
         
        
    
    
        /** * BASE64加密 * 
        * @param key 
        * @return
        * @throws
        * Exception 
        */
        @SuppressWarnings("restriction")
        public static String encryptBASE64(String imgFilePath) {// 将图片文件转化为字节数组字符串,并对其进行Base64编码处理  
        byte[] data = null;  
        // 读取图片字节数组  
        try {  
        InputStream in = new FileInputStream(imgFilePath);  
        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编码过的字节数组字符串  
        }  
          
        
        
        
        /** * BASE64解密 * 
        * @param key 
        * @return
        * @throws
        * Exception 
        */
        @SuppressWarnings("restriction")
        public static boolean decryptBASE64(String imgStr, String imgFilePath) {// 对字节数组字符串进行Base64解码并生成图片  
        if (imgStr == null) // 图像数据为空  
        return false;  
        BASE64Decoder decoder = new BASE64Decoder();  
        try {  
        // Base64解码  
        byte[] bytes = decoder.decodeBuffer(imgStr);  
        for (int i = 0; i < bytes.length; ++i) {  
        if (bytes[i] < 0) {// 调整异常数据  
        bytes[i] += 256;  
        }  
        }  
        // 生成文件
        OutputStream out = new FileOutputStream(imgFilePath);  
        out.write(bytes);  
        out.flush();  
        out.close();  
        return true;  
        } catch (Exception e) {  
        return false;  
        }  
        }  

 

posted @ 2015-02-09 16:50  也许还年轻  阅读(704)  评论(0编辑  收藏  举报