![]() |
1
112
XOR加密的问题是,对于相同字符的长时间运行,很容易看到密码。这样的长时间运行通常是文本文件中的空格。假设您的密码是8个字符,文本文件在某些行中有16个空格(例如,在ASCII图形表的中间)。如果您只是用您的密码XOR,您将看到输出将有重复的字符序列。攻击者只需查找任何此类内容,尝试猜测原始文件中的字符(空格将是第一个尝试的候选字符),并从重复组的长度中派生密码的长度。
二进制文件可能更糟,因为它们通常包含
|
![]() |
2
66
我同意。 Pavel Minaev's explanation Xor的弱点。对于那些感兴趣的人,下面是在几分钟内打破简单XOR加密的标准算法的基本概述:
|
![]() |
3
22
如果满足以下条件,XOR加密可能相当强:
*相当强的意思是它不能被琐碎的数学方法打破,如在geneq的文章中。它仍然不比您的密码强。 |
![]() |
4
12
除了前面提到的点外,XOR加密完全容易受到已知的明文攻击:
在这里,明文互相抵消,只留下钥匙。 对于任何“安全”加密方法来说,不易受到已知的明文攻击是一个必需的但不充分的属性,其中同一密钥用于多个明文块(即一次性PAD仍然是安全的)。 |
![]() |
5
6
使XOR工作的方法: 使用多个键,每个键的长度等于质数,但键的长度绝不相同。 使用原始文件名作为另一个键,但记住要创建一个检索文件名的机制。然后创建一个扩展名为的新文件名,该扩展名会让您知道它是一个加密文件。 使用素数长度的多个键的原因是,它们会导致产生的XOR键的长度是键A乘以键B,然后再重复。 在对文件进行加密之前,将所有重复模式从文件中压缩出来。 生成一个随机数,每X偏移一次XOR这个数(记住,这个数也必须是可重新创建的。您可以使用文件长度的随机种子。 完成所有这些操作后,如果您使用长度为31或更大的5个密钥,您最终将获得大约100兆的密钥长度! 对于密钥,文件名是一个(包括完整路径),str(文件大小)+str(文件日期)+str(日期)+str(时间),随机生成密钥,您的全名,一次创建的私钥。 一种数据库,用于存储用于加密每个文件的密钥,但将数据文件保存在USB记忆棒上,而不是计算机上。 这应该可以防止像图片和音乐这样的文件上的重复模式,但是电影,长度为四个或更多,可能仍然很脆弱,所以可能需要第六个键。 我个人在记忆棒上加密了DAT文件(用于Microsoft Access的DAT文件)。我使用了一个3键方法来加密它,因为它永远不会这么大,它是一个包含相关键的文件目录。 多个键而不是随机生成一个非常大的键的原因是素数乘以素数会很快变大,我对键的创建有一定的控制权,你知道实际上没有真正的随机数。如果我创建了一个大的随机数,其他人就可以生成相同的数。 使用密钥的方法:使用一个密钥加密文件,然后使用下一个密钥,然后使用下一个密钥,直到使用所有密钥。每个密钥被反复使用,直到整个文件被该密钥加密。 因为键的长度不同,所以对每个键重复的重叠是不同的,因此创建一个派生键,即键的长度,一次键的长度,二次键的长度。对于其余的键,此逻辑重复。质数的原因是,重复会发生在键长度的除法上,因此您希望除法为1或键的长度(母鸡、质数)。 当然,这不仅仅是文件上的一个简单的XOR,但是概念是相同的。 兰斯 |
![]() |
6
3
只要这个假设成立,您的加密方案就可以了。那些认为InternetExplorer是“因特网”的人是无法打破它的。 如果没有,就使用一些加密库。已经有许多很好的对称加密算法,如Blowfish或AES。 |
![]() |
7
2
A的目标
good encryption
就是让它
数学上的
没有密钥很难解密。
需要注意的是,在
cryptographic algorithms
.
|
![]() |
8
2
诺顿的反病毒软件使用了一种技术,即使用前一个未加密的字母作为下一个字母的密钥。如果我记错的话,我花了半个小时才弄清楚。 如果您只想停止临时的查看器,这就足够了;我曾经将字符串隐藏在可执行文件中。然而,对于任何一个真正尝试的人来说,它都站不住10分钟。 这就是说,现在有很多更好的加密方法随时可用,所以为什么不利用自己更好的东西呢。如果你只是想躲开“临时”用户,即使是像gzip这样的东西也能做得更好。 |
![]() |
9
2
另一个技巧是为密码生成一个md5()散列。您可以使用受保护文本的长度作为偏移量,或者将其与密码组合,以便为短短语提供更好的分布,从而使其更加独特。对于长短语,通过将每个16字节块与前一个哈希组合,使整个XOR键“随机”且不重复,来发展MD5()哈希。 |
![]() |
10
1
RC4本质上是XOR加密!和许多流密码一样-密钥就是密钥(没有双关语!)你不能重复使用钥匙。永远! |
![]() |
11
1
我是 小的 回答晚了,但由于还没有人提到:这被称为守夜密码。 维基百科给出了 cryptanalysis attacks 更简单的是,由于大多数文件格式都有一个固定的头文件,所以将使用加密头文件对明文头文件进行异或处理,从而为您提供密钥。 |
![]() |
12
1
“gt;6%”geneq提到的是英文电报文本的符合索引-26个字母,标点和数字拼写出来。长文本的实际值为0.0665。 <4%是26个字符字母表中随机文本的符合指数,即1/26或0.385。 如果您使用的是不同的语言或字母表,则特定的值会有所不同。如果您使用的是ASCII字符集、Unicode或二进制字节,那么特定的值将非常不同。但是,纯文本和随机文本的IC之间通常会存在差异。(压缩后的二进制文件可能有与随机文件非常接近的IC,任何用现代计算机密码加密的文件都将有与随机文本完全相同的IC。) 一旦将文本与自身异或,剩下的就相当于一个自动密钥密码。维基百科有一个很好的破译密码的例子。 |
![]() |
Yann · 精灵套件:带有两个精灵的彩色异或逻辑。黑+黑=白 7 年前 |
![]() |
user5005768Himadree · 异或门如何构成给定电路? 7 年前 |
![]() |
mandoza · Java xor解码器[关闭] 8 年前 |
![]() |
OneManRiot · 翻转字节中的最后一位 11 年前 |