Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XOR的Java加密文件_Java_Android_Security_Encryption_Xor - Fatal编程技术网

使用XOR的Java加密文件

使用XOR的Java加密文件,java,android,security,encryption,xor,Java,Android,Security,Encryption,Xor,我正试图找到一种非常有效的加密文件的方法。 我认为一种非常有效的方法(CPU方面,而不是安全级别方面)是在写入时执行XOR,在读取时执行另一个XOR(例如,使用4字节的密钥) 我想这样做的方法是创建我自己的InputStream和OutputStream装饰器。有人知道比这更好/最有效的方法吗?异或密码就是流密码的一个例子。一个过时但易于编程的例子是RC4。对于更现代,但不是那么容易,例子有一个在投资组合中的密码看看:HC-128,兔子,萨尔萨20/12和SOSEMANUK 或者,在CTR模式中

我正试图找到一种非常有效的加密文件的方法。 我认为一种非常有效的方法(CPU方面,而不是安全级别方面)是在写入时执行XOR,在读取时执行另一个XOR(例如,使用4字节的密钥)


我想这样做的方法是创建我自己的InputStream和OutputStream装饰器。有人知道比这更好/最有效的方法吗?

异或密码就是流密码的一个例子。一个过时但易于编程的例子是RC4。对于更现代,但不是那么容易,例子有一个在投资组合中的密码看看:HC-128,兔子,萨尔萨20/12和SOSEMANUK

或者,在CTR模式中使用的块密码(例如AES)等效于流密码

如果您不需要非常强的安全性,请尝试RC4。否则,鉴于AES的普遍可用性,CTR模式下的AES可能是最简单的

我希望通过创建自己的InputStream装饰器来实现这一点 和输出流。有人知道比你更好/最有效的方法吗 那


创建FilterInputStream和FilterOutputStream的子类。

请注意,XOR密码在加密方面并不强大或安全。单独使用一个恒定的重复密钥,一个简单的XOR密码可以通过频率分析轻易地被破解。没错,对于我的用例来说,这种安全级别已经足够了。但是你确定CTR模式不够快吗?因为如果你查看维基百科上CTR的页面,你会很快发现你可以提前计算密钥流,并使用密码对创建的密钥流进行异或运算。我相信在这种情况下,“cypher”的正确拼写是“cipher”“Cypher”是指一个完全不同的意思。@Delan_Azabani:这可能是英国英语和美国英语之间的差异。我是英国人,所以我倾向于使用“cypher”,尽管“cipher”也可以接受。@Delan字典说cypher和cipher是等价的,尽管你已经提出了一个很好的观点——在密码学中使用了“cipher”一词。如果你这样做,那么一定要实现采用字节数组的写方法,而不仅仅是采用单个字节的写方法。确保输出缓冲在某个地方。嗨,你能举个例子吗?因为我不知道怎么做