如何轻松判断文件是否已加密

时间:2012-03-05 14:56:18

标签: java encryption

我将加密的数据文件接收到一个目录中,在该目录中,夜间进程未加密 然后加载未加密的文件。

我需要编写一个Java方法来返回一个包含目录中所有未加密文件的文件名的数组。

加密方法是openSSL(aes128)。

到目前为止,我已经尝试了getType(),但它也为未加密的数据文件和加密文件返回content/unknown

我现在正在研究读取每个文件的前两行并检查返回的字符以查看文件是否已加密。
我需要知道的是,有更好的方法吗?

我还可以测试文件内容是XML还是纯文本,而不是测试文件是否加密,如果这使解决方案更容易?

2 个答案:

答案 0 :(得分:4)

使用命名约定,以便解密的文件具有不同的扩展名,或将解密的文件放在不同的目录中。

编辑:鉴于你提到的限制,我认为你必须按照你在问题中提出的建议行事。这个http://www.dansdata.com/gz125.htm是文件识别问题的有趣指南。如果它适用于您的特定文件类型,您也可以使用file unix命令。

答案 1 :(得分:0)

我不能对AES发表评论,但是有几种加密标准(PGP可以想到)允许使用公共标题或者具有公共属性(如签名块或公钥)。

您检查XML的计划没问题,请通过XML解析器提供。但是,它只会告诉您文件是否为XML,而不是加密。

您如何区分纯文本和加密文件?它只是文字不是吗?

您使用的是什么实施方案?您使用的是哪些库?

加密文件是加密文件还是base64编码的?这些文件如何存储在文件系统中?是直接写还是通过其他机制写的?

基于对@rosco提出的问题的评论,是否有任何理由无法解密文件以检查文件是否已加密?它们是非常大的文件吗?您的应用程序是解密它的应用程序还是仅仅是中间人?是否有任何安全限制会阻止您对其进行解密?

您能否制定业务规则?例如,如果提交的内容未加密,则说明提交将被拒绝?