作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们需要检查上传的文件是否受密码保护。文件类型可以是任何常见类型,如 doc、xml、xls、pdf 等...
此外,我无法使用第三方 API,因为我们的安全策略不允许这样做。所以我们基本上只能使用核心安全 Java API。
提前致谢...普拉迪普
最佳答案
文件没有特定于操作系统的属性(据我所知常见操作系统)可以告诉您该文件受密码保护。
文件格式(以及大多数其他格式)的过程如下:
适当的程序尝试打开文件(Word、Adobe Reader 等)
程序在解析文件时会注意到设置了用于密码保护的文件格式特定标志。
程序会向您显示密码提示,然后尝试解密
这意味着,您的选择是:
查阅您希望用户能够上传的所有文件格式的文档,并对每种文件格式进行解析,以查明是否已自行设置密码
使用您想要支持的文件格式的第三方库,并让它们进行解析和密码保护检查。
选项 1 显然是一个巨大的开发成本。您的政策不允许选项 2。
我的建议是:要么放弃该功能,要么重新考虑“无第三方库”的要求。第二个更有意义,因为 Java 有大量可用的第三方库,可以节省您自己开发功能的时间/天/月。
关于java - 如何检查上传的文件是否受密码保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20068338/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!