gpt4 book ai didi

Java:如何编写二进制文件?

转载 作者:太空狗 更新时间:2023-10-29 22:45:59 24 4
gpt4 key购买 nike

我从事 Web 编程已经有好几年了,从那以后我就没有做过任何桌面应用程序的编程,我忘记了很多东西。如果这太简单了,请耐心等待。

现在我遇到这样的情况:
我正在尝试将一些哈希词存储在文件中。我想我应该为此使用二进制文件(如果我错了请纠正我)。但是我不知道应该如何将这些词写入文件。我尝试了很多方法,但是当我读回文件并尝试解密这些单词时,我得到了 BadPaddingException

有谁知道如何将单词写入文件?

P.S:我使用这段代码来加密/解密单词(我从另一个 StackOverflow 线程获得它,并进行了一些修改):

public static byte[] encrypt(String property) throws GeneralSecurityException, UnsupportedEncodingException {
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key = keyFactory.generateSecret(new PBEKeySpec(password));
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
pbeCipher.init(Cipher.ENCRYPT_MODE, key, new PBEParameterSpec(salt, 20));
return pbeCipher.doFinal(property.getBytes("UTF-8"));
}

public static String decrypt(byte[] property) throws GeneralSecurityException, IOException {
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("PBEWithMD5AndDES");
SecretKey key = keyFactory.generateSecret(new PBEKeySpec(password));
Cipher pbeCipher = Cipher.getInstance("PBEWithMD5AndDES");
pbeCipher.init(Cipher.DECRYPT_MODE, key, new PBEParameterSpec(salt, 20));
return new String(pbeCipher.doFinal(property));
}

最佳答案

好吧,只需使用 FileInputStreamFileOutputStream =)

示例写作:

// encrypted data in array
byte[] data = ...

FileOutputStream fos = ...
fos.write(data, 0, data.length);
fos.flush();
fos.close();

示例阅读:

File inputFile = new File(filePath);
byte[] data = new byte[inputFile.length()];
FileInputStream fis = new FileInputStream(inputFile);
fis.read(data, 0, data.length);
fis.close();

以上代码假定一个文件包含单个加密项目。如果您需要在单个文件中包含多个项目,则需要为此设计一些格式方案。例如,您可以在数据本身之前将加密数据中的字节数存储为 2 个字节。每个项目 2 个字节意味着加密项目不能超过 2^16 个字节。当然,你可以使用4个字节作为长度。

关于Java:如何编写二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com