首页 > 解决方案 > 编写一个使用整数密钥加密 .txt 文件的 Java 程序

问题描述

这是我在 StackOverflow 上的第一个问题。希望它会足够清晰和详细。

所以我需要写2个方法,加密和解密。我的加密功能是:

 public void cifra() throws FileNotFoundException,IOException {

        FileInputStream in=new FileInputStream(file);
        String s="";
        int b;

        while(in.read()!=-1) {

            b=in.read()+key;
            s+=b;
        }

        in.close();

        PrintStream ps=new PrintStream(file);
        ps.println(s);

        ps.close();

 }

我的解密功能是一样的,但有

b=in.read()-key;

但它不起作用。输出文件与未加密的初始文件不同。谢谢您的帮助!

标签: javaencryption

解决方案


in.read() 以整数形式读取文件的单个字节。然后通过 s+=b 将该整数转换为字符串。

所以说 in.read() 给你 97('a' 的 ASCII 码)并且你的键是 5,你正在转身将 102 写入文件,而不是'f',这将是“编码”字符.

您的循环应该构建一个字节数组(或字节流),并且您应该将该字节数组写入文件。

这是ByteArrayOutputStream的文档,您的循环应该写入该文档,您可以反过来将其写入文件。


推荐阅读