存储加密文本

时间:2017-10-13 01:48:29

标签: java encryption

我有一个密码保险库程序,它使用下面的XOR密码在文本文件中存储用户名和密码。每行包含一个用户名和密码对,并用逗号分隔,因此它遵循以下格式:

  

用户名,密码

     

用户名,密码

     

问题在于密码偶尔会将字符加密为逗号,因此当我再次尝试读取文件时,数据将被不正确地读取并且基本上会被删除。

我正在考虑通过检查是否有来自XOR密码的逗号来解决这个问题,如果是,则将其增加到下一个ascii字符“ - ”,然后在读取数据和解密时将其返回到逗号它。我在这个解决方案中看到的问题是,它可能会导致与加密到“ - ”的字符发生冲突。

有人能想到我可以用来防止数据丢失的解决方案吗?

    // XOR cipher
    public static String encryptDecrypt(String input, String pass) {
         char[] key = pass.toCharArray();
         StringBuilder output = new StringBuilder();
         for (int i = 0; i < input.length(); i++) {
             output.append((char) (input.charAt(i) ^ key[i % key.length]));
         }
         return output.toString();
    }

1 个答案:

答案 0 :(得分:0)

尝试使用DataOutputStream.writeUTF()将文本输出到文件,而不是将它们存储在文本文件中。然后,您可以使用DataInputStream.readUTF()从文件中读取。您不必以这种方式划分任何内容