【问题标题】:How to encrypt a text file while you are writing it in real time? [closed]如何在实时编写文本文件时对其进行加密? [关闭]
【发布时间】:2016-01-27 12:20:47
【问题描述】:

我正在键入一个将字符串存储在日志文件中的程序。问题是字符可能不止一个或只有一个,而且到达速度非常快(可能不到一秒)。

我正在做一个实验,想法是像一个简单的“文本编辑器”一样,你按下的每个键都会实时自动加密存储在一个文件中。还会有表情符号,由“[:SMILE]”表示,并使用按钮到达,所以出现。是因为字符可能是 lenght>=1 。

加密方式会使用asimetric,我不知道是RSA还是PGP,哪个更好?

我想找到一种好的加密方法,因为加密进度可能很慢。

一个例子是使用一个缓冲区,当完全释放它并加密它,并将文件附加到例如 1024 的加密块中并使用此块大小对其进行解密。

我不知道这是否是优化的解决方案...如何处理生成加密且快速生成的加密日志?

【问题讨论】:

  • 小于秒是相当广泛的。也“因为也许加密进度可能很慢”。这是基于什么?猜测?另外你是如何加密数据的?什么是“加密日志”?
  • @PeeHaa 我编辑了添加更多信息的问题。现在解释清楚了吗?
  • 也许另一个想法可能是,不是在字节级别加密,而是在字符串级别进行,在每个字符串接收器之后,加密它,放置一个开始和结束标识符,以便知道每个字符串必须从哪里开始单独解密。

标签: java encryption


【解决方案1】:

我发现了两个不同的选项,都符合“缓冲区”。

一种是做一个缓冲区,当缓冲区达到一定大小时将其发送给密码。 另一种是以时间的方式进行,因此,每次发送到密码(例如两秒)

第一个是使用 CharBuffer 创建缓冲区。当缓冲区达到缓冲区大小时,它使用同步线程将内容发送到密码器以进行加密,如下所示:

    public class KeyStrokeBuffer
{
  private CharBuffer buffer;
  private static final int BUFFER_SIZE = 5;

  Scanner sc;

  public KeyStrokeBuffer ()
  {
    this.buffer  = CharBuffer.allocate(BUFFER_SIZE);
    sc = new Scanner(System.in);
  }

  public void add (String s){
    int pointer = 0;
    while (pointer < s.length() &&  buffer.length() >0){
        buffer.put (s.charAt(pointer));
        pointer++;
        s.substring(1);
    }
    if (pointer != s.length()) { //This is for make the string sended always in the same size
        cipher (buffer); //This launched like a synchronized thread 
        buffer = CharBuffer.allocate(BUFFER_SIZE); 
        add(s);
    }
  }

  public void cipher (CharBuffer buffer){
    System.out.println ("Dentro cypher");
  }

第二种方法是创建一个以 LinkedList 作为缓冲区的类。在这个类中,一个线程休眠例如 2 秒,如果链表不为空,则将链表发送到密码。 同时,该类的一个方法将Strings添加到链表中。所以我们有一个线程每隔“x”时间发送一个链表,还有一个函数可以将字符串添加到这个链表中。

我还没有实现这个。

在密码中,我们必须知道每个要加密的块必须具有特定的宽度,才能正确解密。 另一件事是,如果很多线程处理起来会很繁重。

我还在这篇文章中找到了一个可能的解决方案: How to append to AES encrypted file

【讨论】:

    猜你喜欢
    • 2017-05-31
    • 2022-01-21
    • 2015-09-18
    • 2010-09-06
    • 2011-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多