我想为用户提供通过对称密码将某些数据加密到文件的服务。用户只需提供密钥,他/她就可以为密码提供初始化向量。
文件应该是什么样的标准?用加密数据填充文件并在对话框窗口中显示相应的初始化向量是有意义的。对于其他人来说,初始化向量应该与加密数据一起存储在文件中似乎是合理的。
对我来说重要的是结果对用户有用,他/她不需要费心调整结果。
感谢您的评论!
答案 0 :(得分:2)
原则上,您可以使用您想要的任何格式,只要程序的解密部分知道如何阅读它。为了提高效率,在数据之前使用初始化向量似乎是个好主意。
如果你想加密文件,最好不要创建你自己的格式(导致你必须像这里那样做决定),而是使用现有的文件格式(这也是加密协议) )。
如果您不需要所有功能,我建议使用OpenPGP message format, as defined in RFC 4880(或其某些子集)。这样做的好处是,如果您的程序以某种方式停止工作(当然,只有拥有密钥/密码),您的客户端才能使用任何OpenPGP实现(如pgp或gpg)解密您的文件。
答案 1 :(得分:2)
通常的做法是将IV作为密文文件的第一个块。这样接收器只将前8个字节(DES)或16个字节(AES)视为IV,将文件的其余部分视为实际的密文。
使用与用于密文的IV相同的格式:Base64,十六进制,字节数据或其他。
答案 2 :(得分:1)
如果将IV与加密数据一起存储在文件中,你应该没问题......