如何将文件标记为已加密
How to mark file as already encrypted
我正在尝试为教育 pourpuses 实现一个简单的加密实用程序,它至少对简单文件有效,但是当我成功加密一个文件时,我不想再次加密它,因为这可能会导致如果我 encrypt/decrypt 以错误的方式丢失我的数据...有没有办法阻止我这样做?
我用的是java,默认的加密库。
提前致谢
由于它是加密的,因此无法在该文件类型的默认程序中打开,因此您可以安全地重命名该文件。这可以通过添加 .enc
作为扩展名来完成。这样做将使您和您的 java 应用程序轻松发现加密文件。
根据您的用例,您还可以让 java 应用程序管理加密文件的数据库。
这里您想知道的答案在很大程度上取决于您最初是如何加密文件的。
我将列出一些可能对您有所帮助的不同方法
方法 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
()
注意:这些只是理论示例,因为我不知道您的 OS 是什么
如果它保存在名为 'myencrypt.bat' 的文件中,那么您只需键入
myencrypt.bat afile.ext
方法 2 - 自定义字节
如果您可以直接控制源代码以及执行此加密的应用程序,那么为什么不制作一个伪文件格式。
在您的程序随后检查的文件中添加某种标记。
举个例子,你也许可以
将以下字符串添加到文件的前面
ENCFOriginalFile.Ext
将其转换为一组字节,然后加载文件,对其进行加密,添加文本中的字节并将其保存回来,可能使用自定义文件扩展名。
当你再次加密文件时,你需要做的就是读取前4个字节,如果它们等于ENCF,你就知道文件已经加密。
这些只是我能想到的 2 个想法,但现在已经很晚了,我很累。如果我再清醒一点,我可能会想出一整页。
我正在尝试为教育 pourpuses 实现一个简单的加密实用程序,它至少对简单文件有效,但是当我成功加密一个文件时,我不想再次加密它,因为这可能会导致如果我 encrypt/decrypt 以错误的方式丢失我的数据...有没有办法阻止我这样做?
我用的是java,默认的加密库。
提前致谢
由于它是加密的,因此无法在该文件类型的默认程序中打开,因此您可以安全地重命名该文件。这可以通过添加 .enc
作为扩展名来完成。这样做将使您和您的 java 应用程序轻松发现加密文件。
根据您的用例,您还可以让 java 应用程序管理加密文件的数据库。
这里您想知道的答案在很大程度上取决于您最初是如何加密文件的。
我将列出一些可能对您有所帮助的不同方法
方法 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
()
注意:这些只是理论示例,因为我不知道您的 OS 是什么
如果它保存在名为 'myencrypt.bat' 的文件中,那么您只需键入
myencrypt.bat afile.ext
方法 2 - 自定义字节
如果您可以直接控制源代码以及执行此加密的应用程序,那么为什么不制作一个伪文件格式。
在您的程序随后检查的文件中添加某种标记。
举个例子,你也许可以
将以下字符串添加到文件的前面
ENCFOriginalFile.Ext
将其转换为一组字节,然后加载文件,对其进行加密,添加文本中的字节并将其保存回来,可能使用自定义文件扩展名。
当你再次加密文件时,你需要做的就是读取前4个字节,如果它们等于ENCF,你就知道文件已经加密。
这些只是我能想到的 2 个想法,但现在已经很晚了,我很累。如果我再清醒一点,我可能会想出一整页。