在java中加密文本文件的最简单方法

2022-09-04 06:52:14

对于我的学校项目,我必须证明我可以在程序中使用文件处理。为此,我做了一个非常简单的登录过程,您可以在其中创建一个帐户,该帐户将用户名和密码写入位于资源文件夹中的文本文件中。显然,这根本没有安全性,因为它的设计目的不是为了展示文件处理而安全的,但是我的老师说,我也应该尝试为文件添加一些加密以获得更好的成绩。

我做了一些研究,很多人都推荐DES。

我遇到的问题是我没有多少时间留给我的项目,需要尽快完成它。使用DES似乎需要一段时间来实现所有额外的代码。

在我的程序中,我使用一个简单的行NumberReader逐行读取文件。要写入文件,我正在使用缓冲器。

有没有非常简单地加密这些数据?它不必非常安全,但我需要证明我至少尝试过加密数据。加密和解密将在同一个应用程序上完成,因为不会传输数据。

可能是我自己创建非常简单的加密和解密算法的一种方式?


答案 1

试试这个,...它非常简单

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;

public class HelloWorld{
    public static void main(String[] args) {

        try{
            KeyGenerator keygenerator = KeyGenerator.getInstance("DES");
            SecretKey myDesKey = keygenerator.generateKey();

            Cipher desCipher;
            desCipher = Cipher.getInstance("DES");


            byte[] text = "No body can see me.".getBytes("UTF8");


            desCipher.init(Cipher.ENCRYPT_MODE, myDesKey);
            byte[] textEncrypted = desCipher.doFinal(text);

            String s = new String(textEncrypted);
            System.out.println(s);

            desCipher.init(Cipher.DECRYPT_MODE, myDesKey);
            byte[] textDecrypted = desCipher.doFinal(textEncrypted);

            s = new String(textDecrypted);
            System.out.println(s);
        }catch(Exception e)
        {
            System.out.println("Exception");
        }
    }
}

因此,基本上在写入文件之前,您将加密,并且在读取后您需要对其进行解密。


答案 2

一个简单而有趣的加扰算法是Burrows-Wheeler变换。不是真正的安全加密,但说真的,这是一个学校的工作,这真是太棒了。