我正在尝试为教育pourpuses实现一个简单的加密实用程序,它至少可以使用简单的文件,但是当我成功加密一个文件时,我不想再次加密它,因为这可能会导致如果我以错误的方式加密/解密它,我的数据会松散...有没有办法阻止我这样做?
我正在使用java和默认加密库。
提前致谢
答案 0 :(得分:0)
这里你想知道的答案在很大程度上取决于你如何加密文件。
我将列出一些可能对您有所帮助的不同方法
如果你使用第三方工具,例如由另一个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
如果您可以直接控制源代码,从而直接控制执行此加密的应用程序,那么为什么不制作伪文件格式。
将某种标记添加到程序随后检查的文件中。
举个例子,你可能
将以下字符串添加到文件的前面
ENCFOriginalFile.Ext
将其转换为一组字节,然后加载文件,对其进行加密,从文本中添加字节并将其保存回来,可能使用自定义文件扩展名。
当您再次加密文件时,您需要做的就是读取前4个字节,如果它们等于 ENCF ,您就知道该文件已经加密。
这些只是我能想到的两个想法,但现在已经很晚了,我很累。如果我更清醒,我可能会想出一整页。
答案 1 :(得分:-1)
由于它是加密的,因此无法在该文件类型的默认程序中打开,因此您可以保存重命名该文件。这可以通过添加.enc
作为扩展名来完成。这样做可以很容易地为您和您的Java应用程序发现加密文件。
根据您的使用情况,您还可以让您的Java应用程序管理加密文件的数据库。