java导入excel时,如何验证工作簿的保护密码是否正确?求大神指点

xiey_小鎮格調 2019-07-15 11:08:15
有没有人知道java导入excel时,如何验证工作簿的保护密码是否正确?

正确密码已知,密码在我导出的时候已经设置好了,如: sheet.protectSheet(new String("123456"));//123456是密码,

但我如何再导入的时候来验证这个密码的正确性。

如下图:
...全文
670 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_42507579 2021-04-08
  • 打赏
  • 举报
回复
你最后怎么解决的
zhuxinhuan 2021-04-01
  • 打赏
  • 举报
回复
03版本的xls excel可以这样 Workbook workbook = WorkbookFactory.create(new FileInputStream(file)); Sheet other = workbook.getSheet("sheet"); short passwordEncode = (short) CryptoFunctions.createXorVerifier1("123456"); Object _sheet = Reflections.getFieldValue(other, "_sheet"); Object _protectionBlock = Reflections.getFieldValue(_sheet, "_protectionBlock"); Object _passwordRecord = Reflections.getFieldValue(_protectionBlock, "_passwordRecord"); short field_1_password = (short) Reflections.getFieldValue(_passwordRecord, "field_1_password"); if(passwordEncode == field_1_password) { System.out.println("密码正确"); }else { System.out.println("密码错误"); }
  • 打赏
  • 举报
回复
引用 3 楼 xiey_小鎮格調 的回复:
对的, 是指读取工作簿里面数据的时候的时验证工作簿的保护密码是否正确,正确密码已知,需要在导入的时候根据已知的正确密码验证导入文件的工作簿密码是否正确。目的:规定用户操作时只能用由系统导出的excel模板,来导入数据更新,如图一和图二,图一,图二
这个方法是不能用吗? boolean checkResult = Decryptor.getInstance(new EncryptionInfo(new NPOIFSFileSystem(new File(""), true))).verifyPassword("123456"); if (checkResult){ //检测正确 }
  • 打赏
  • 举报
回复
首先在导入的时候校验正确性 是指读取工作簿的时候输入密码吗? Decryptor.getInstance(new EncryptionInfo(new NPOIFSFileSystem(File file, boolean readOnly))).verifyPassword(password); 还是校验工作簿的密码有没有被篡改? 在导出的时候将对应密码存储起来,然后在导入的时候校验
xiey_小鎮格調 2019-07-16
  • 打赏
  • 举报
回复 1
对的, 是指读取工作簿里面数据的时候的时验证工作簿的保护密码是否正确,正确密码已知,需要在导入的时候根据已知的正确密码验证导入文件的工作簿密码是否正确。目的:规定用户操作时只能用由系统导出的excel模板,来导入数据更新,如图一和图二,图一,图二
xiey_小鎮格調 2019-07-15
  • 打赏
  • 举报
回复
跪求大神指教啊!!!!

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧