栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java免费文件安全加密解密

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java免费文件安全加密解密

官网地址:C#/VB.Net Excel, Word, PowerPoint, PDF Component - Welcome to e-iceblue Company Ltd

 Java集成Excel加解密示例 配置文件

文件枚举

package com.boonya.spring.mybatis.plus.enums;

import lombok.Getter;

@Getter
public enum FileType {

    EXCEL(".xls","Excel"),
    EXCEL_X(".xls","Excel X"),
    JSON(".json","JSON"),
    PDF(".pdf","PDF"),
    WORd(".doc","WORD"),
    WORD_X(".docx","WORD X"),
    ;

    private String type;
    private String desc;

    private FileType(String type,String desc){
        this.type = type;
        this.desc = desc;
    }
}

抽象定义

package com.boonya.spring.mybatis.plus.config;

import com.boonya.spring.mybatis.plus.enums.FileType;
import com.spire.xls.Workbook;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;

import java.io.File;

@Configuration
public abstract class AbstractEncryptDecryptConfig {

    
    @Value("${file.encrypt.save.path}")
    protected static final String TEMP_URL = "";

    
    @Value("${file.encrypt.save.path}")
    protected static final String ENCRYPT_URL = "";

    
    @Value("${file.decrypt.save.path}")
    protected static final String DECRYPT_URL = "";

    
    protected void save(Workbook wb, String targetPath) {
        File file = new File(targetPath);
        if (!file.exists()) {
            wb.saveToFile(targetPath);
        }
    }

    public String getEncryptFilePath(String fileName, FileType type) {
        return ENCRYPT_URL + File.separator + fileName + type.getType();
    }

    public String getDecryptFilePath(String fileName, FileType type) {
        return DECRYPT_URL + File.separator + fileName + type.getType();
    }

    
    public abstract void encrypt(String fileName, String securityPwd);

    
    public abstract void decrypt(String fileName, String securityPwd);
}
加密解密

Workbook

package com.boonya.spring.mybatis.plus.config;

import com.boonya.spring.mybatis.plus.enums.FileType;
import com.spire.xls.Workbook;
import org.springframework.stereotype.Component;
import java.io.File;

@Component
public class WorkbookEncryptDecrypt extends AbstractEncryptDecryptConfig {

    
    public void encrypt(String fileName, String securityPwd) {
        //加载Excel文档
        Workbook wb = new Workbook();
        wb.loadFromFile(TEMP_URL + File.separator + fileName);
        //加密工作簿
        wb.protect(securityPwd);
        //保存文档
        String targetPath = getEncryptFilePath(fileName, fileName.contains(FileType.EXCEL.getType()) ? FileType.EXCEL : FileType.EXCEL_X);
        save(wb, targetPath);
    }

    
    public void decrypt(String fileName, String securityPwd) {
        //加载文档
        Workbook wb = new Workbook();
        wb.setOpenPassword(securityPwd);
        wb.loadFromFile(ENCRYPT_URL + File.separator + fileName);
        //解除密码保护
        wb.unProtect();
        //保存文档
        String targetPath = getDecryptFilePath(fileName, fileName.contains(FileType.EXCEL.getType()) ? FileType.EXCEL : FileType.EXCEL_X);
        save(wb, targetPath);
        wb.dispose();
    }
}

Worksheet

package com.boonya.spring.mybatis.plus.config;

import com.boonya.spring.mybatis.plus.enums.FileType;
import com.spire.xls.FileFormat;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
import org.springframework.stereotype.Component;
import java.io.File;
@Component
public class WorkSheetEncryptDecrypt extends AbstractEncryptDecryptConfig{

    
    public void  encrypt(String fileName,String securityPwd){
        //加载Excel文档
        Workbook wb = new Workbook();
        wb.loadFromFile(TEMP_URL + File.separator + fileName);
        //获取工作表,加密
        Worksheet sheet = wb.getWorksheets().get(0);
        sheet.protect(securityPwd);
        //保存文档
        String targetPath = getEncryptFilePath(fileName ,fileName.contains(FileType.EXCEL.getType()) ? FileType.EXCEL : FileType.EXCEL_X);
        wb.saveToFile(targetPath, FileFormat.Version2013);
        wb.dispose();
    }

    
    public void  decrypt(String fileName,String securityPwd){
        //加载文档
        Workbook wb = new Workbook();
        wb.loadFromFile(ENCRYPT_URL + File.separator + fileName);
        //获取工作表
        Worksheet sheet = wb.getWorksheets().get(0);
        //解除工作表的密码保护
        sheet.unprotect(securityPwd);
        //保存文档
        String targetPath = getDecryptFilePath(fileName , fileName.contains(FileType.EXCEL.getType()) ? FileType.EXCEL : FileType.EXCEL_X);
        wb.saveToFile(targetPath);
        wb.dispose();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/531097.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号