我正在键入一个程序,用于在日志文件中存储字符串。问题是角色可能不止一个或只有一个,而且速度非常快(可能不到第二个)。
我正在做一个实验,想法是像一个简单的文本编辑器那样做,你按下的每个键都会实时加密存储在一个文件中。还将有表情符号,由" [:SMILE]"表示。并且使用按钮到达,所以出现。就此而言,字符可以是长度> = 1。
encriptation方法将使用asimetric,我不知道RSA或PGP,哪个更好?
我想找到一个很好的加密方法,因为加密过程可能会很慢。
一个例子是使用一个缓冲区,当它完全解放它并加密它,并将文件附加到1024的加密块中,并使用此块大小解密它。
我不知道这是否是优化的解决方案......如何处理加密生成的加密日志?
答案 0 :(得分:0)
我找到了两个不同的选项,都符合“缓冲区”。
一个是缓冲区并在缓冲区达到大小时将其发送到密码。 另一种是以时间的方式做,ergo,每次发送到密码(例如两秒)
第一个是使用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秒,如果不为空,则将链接列表发送到密码。 同时,此类的方法将字符串添加到链接列表。所以我们有一个线程,每隔“x”时间发送一次链表,并有一个函数将字符串添加到这个链表中。
我还没有实现这个。
在Cipher中,我们必须知道要加密的每个块必须具有特定的宽度,才能正确解密。 另一件事是,如果很多线程处理繁重。
此外,我在这篇文章中找到了一个可能的解决方案: How to append to AES encrypted file