如何将文件标记为已加密

时间:2015-01-08 22:25:40

标签: java encryption

我正在尝试为教育pourpuses实现一个简单的加密实用程序,它至少可以使用简单的文件,但是当我成功加密一个文件时,我不想再次加密它,因为这可能会导致如果我以错误的方式加密/解密它,我的数据会松散...有没有办法阻止我这样做?

我正在使用java和默认加密库。

提前致谢

2 个答案:

答案 0 :(得分:0)

这里你想知道的答案在很大程度上取决于你如何加密文件。

我将列出一些可能对您有所帮助的不同方法

方法1 - 脚本

如果你使用第三方工具,例如由另一个java程序员编写的加密工具,如果你在某种shell会话中运行这个工具,你最好的选择可能是将所述工具的调用包装在一个shell中脚本。

如果您在Windows上运行,这可能是一个批处理文件,在Linux上是一个bash脚本。

基本上你使用这种方法是提前计算出你需要使用的命令,然后将该命令放入所说的shell脚本中,同时替换你需要更改的任何参数。

继承自包装命令之后,您可以提供更多命令来重命名文件,或在其文件属性或文件名中嵌入某种信息,可能的示例可能是这样的:

IF NOT EXIST %%0.encrypted(
  encrypt %%0 -a -b -c -d
  rename %%0 %%0.encrypted) ELSE (
)
ELSE
()

注意:这些只是理论上的例子,因为我不知道您的操作系统是什么

如果将其保存在名为“myencrypt.bat”的文件中,则只需输入

即可
myencrypt.bat afile.ext

方法2 - 自定义字节

如果您可以直接控制源代码,从而直接控制执行此加密的应用程序,那么为什么不制作伪文件格式。

将某种标记添加到程序随后检查的文件中。

举个例子,你可能

将以下字符串添加到文件的前面

ENCFOriginalFile.Ext

将其转换为一组字节,然后加载文件,对其进行加密,从文本中添加字节并将其保存回来,可能使用自定义文件扩展名。

当您再次加密文件时,您需要做的就是读取前4个字节,如果它们等于 ENCF ,您就知道该文件已经加密。

这些只是我能想到的两个想法,但现在已经很晚了,我很累。如果我更清醒,我可能会想出一整页。

答案 1 :(得分:-1)

由于它是加密的,因此无法在该文件类型的默认程序中打开,因此您可以保存重命名该文件。这可以通过添加.enc作为扩展名来完成。这样做可以很容易地为您和您的Java应用程序发现加密文件。

根据您的使用情况,您还可以让您的Java应用程序管理加密文件的数据库。