本文共 1064 字,大约阅读时间需要 3 分钟。
我想创建一个使用Java的流密码,在该密码中,我从文件中将纯文本加密(使用种子值的简单XOR与随机密钥)并将其存储在不同的文件中,然后进行解密,再次从文件中取出密文并对其进行解密(与密钥相同的XOR操作与加密相同)并存储在文件中。使用java的流密码
但是我在试图加密大字符串时遇到问题。一半的字符串正在被正确解密,但另一半仍然是不可读的格式。
FileReader fileReader = new FileReader(file);
// Always wrap FileReader in BufferedReader.
BufferedReader bufferedReader =
new BufferedReader(fileReader);
FileWriter fileWriter =
new FileWriter(file2);
// Always wrap FileWriter in BufferedWriter.
BufferedWriter bufferedWriter =
new BufferedWriter(fileWriter);
while((line = bufferedReader.readLine()) != null) {
sb = new StringBuffer (line);
int lenStr = line.length();
int lenKey = String.valueOf(random).length();
// For each character in our string, encrypt it...
for (int i = 0, j = 0; i < lenStr; i++, j++)
{
if (j >= lenKey) j = 0; // Wrap 'round to beginning of key string.
//
// XOR the chars together. Must cast back to char to avoid compile error.
//
String key = random + "";
bufferedWriter.write((char)(line.charAt(i)^key.charAt(j)));
}
}
// Always close files.
bufferedReader.close();
bufferedWriter.close();
+0
哪一半?你的琴弦有多久了? –
转载地址:https://blog.csdn.net/weixin_34190683/article/details/114770762 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!