我尝试进行AES加密,然后生成盐。但是我遇到了一些问题。下面的代码工作正常,但每当我加密第二个等文件时,文件旁边的盐都会被覆盖。关于如何将salt byte []附加到salt fil而不覆盖它的任何建议?
Guys..i更新了我的代码..感谢该部分,虽然它修复了覆盖问题,但它没有进入下一行。
在我的文件上输出:〜V“÷ҲÖ4ô|ŒTÊm0'Z ^'û•šÙK·=这是两个盐的组合。
任何想法如何让它追加到下一行?
我尝试saltoutfile.write(“/ n”)但不起作用
public byte[] generateSalt() throws IOException{
//generate Salt value
// password, iv and salt should be transferred to the other end
// in a secure manner
// salt is used for encoding
// writing it to a file
// salt should be transferred to the recipient securely
// for decryption
byte[] salt = new byte[8];
SecureRandom secureRandom = new SecureRandom();
secureRandom.nextBytes(salt);
FileOutputStream saltOutFile = new FileOutputStream("C:\\KryptZIP\\salt.enc" , true);
saltOutFile.write(salt);
saltOutFile.close();
return salt;
}
如评论中所述:这是我的读盐值
public static byte[] readSalt() throws IOException{
// reading the salt
// user should have secure mechanism to transfer the
// salt, iv and password to the recipient
FileInputStream saltFis = new FileInputStream("C:\\KryptZIP\\salt.enc");
byte[] salt = new byte[8];
saltFis.read(salt);
saltFis.close();
return salt;
}
答案 0 :(得分:4)
您需要使用带有2个参数的FileOutputStream
构造函数。第二个参数是一个布尔标志,指示您是否要追加(true
)到文件或从头开始(false
)。
将您的代码更改为:
FileOutputStream saltOutFile = new FileOutputStream("C:\\KryptZIP\\salt.enc", true);
答案 1 :(得分:0)
使用Apache FileUtils。使用方法
FileUtils.writeByteArrayToFile(java.io.File file,bytes[] content,boolean append)