1
19
你想要的是一个32位的分组密码。不幸的是,由于 weaknesses of a short block size .如果您可以处理比输入大两倍的加密int,那么您可以使用blowfish、tdes或其他经过良好审查的64位块密码。 如果您真的需要32位,并且不介意降低的安全性,那么就可以很容易地将feistel网络密码(如blowfish)修剪为2的倍数,小于起始密码的任何块长度。为了 Blowfish ,只需在两个半块之间均匀地拆分输入数字,并将f函数的输出和p值减至目标块大小的1/2。这一切都可以在像往常一样键入算法之后完成。 |
2
7
显然,您需要某种随机密钥才能保证安全。在这种情况下:
这只是一个简单的XOR。再次XORing将反转此过程。 另外,我要注意的是,这只对一次使用是安全的。它叫做 One time pad . 如果对非随机数据使用同一个密钥两次,攻击者可能会对其进行解密。 |
3
5
使用32位块密码,skip32是我找到的唯一一个: http://www.qualcomm.com.au/PublicationsDocs/skip32.c |
4
1
一种方法是使用秘密的32位数字执行异或。当您再次使用这个秘密号码执行异或时,它将返回到原始号码。这很快,但不是很安全。如果需要一个安全的方法,我也会有兴趣在这里看到其他方法。 |
5
1
使用标准算法和随机填充(假设密文不需要与平面文本相同的长度)。 所以,基本上,使用一个标准的算法,使用链接,在它前面插入四个随机的32位数字。这将有助于掩盖32位消息中的任何规则/冗余。见鬼,如果你愿意的话,也在最后垫上。 基本上,你写得越少越好。每个人都搞砸了。 |
6
0
有两个简单且可逆的操作可用于对整数值进行置乱。您可以使用XOR操作,并且可以交换数字中的位。 如果您同时使用这两种方法,那么找出所使用的方法就不是那么简单了。他们会互相保护。 |
7
0
如果您只需要一些普通用户不会注意到的真正简单的东西,那么就使用一系列XOR和SHIFT操作符。 不使用数组来存储大约40亿个整数的问题是,您需要一个函数,该函数在40亿个整数的域中执行一对一的随机映射。您可以混合一些XOR和移位操作符来创建自己的,但这并不难破解。即使有一张众所周知的一对一地图,它也会失败。如果没有盐,有人可以制作一个简单的彩虹桌来打破它。 SALT双向通信的问题在于,您必须安全地通信它。盐必须是秘密的,一旦你知道它们是什么,它们就毫无意义了。 如果你想建立一个安全的沟通渠道 Off-the-Record Messaging Protocol version 2 . 它将给您一个例子,说明通信加密的复杂性。我建议你找到一些其他人已经创建和测试过的众所周知的东西。即使你确实使用了别人创造的东西,如果你使用不当,它也会失败。 |
8
0
取32位输入,将其分为两个16位半L和R,然后重复 以下步骤:计算一个伪随机函数r,xor,这个伪随机函数的结果到l,交换l和r,这是一个 Luby-Rackoff 建设。伪随机函数不需要是可逆的。例如,您可以使用块密码,加密16位,并将结果剪切为16位。确保并非所有回合都使用相同的伪随机函数(rsp)。使用不同的圆键)。 |
9
0
查看:github.com/msotoodeh/integer-encoder项目。它支持32位和64位整数。 |
10
-1
我曾经使用XOR+ADD和64位密钥。我还经常每隔几分钟更改一次密钥,并尝试用当前或以前的密钥解密。(在我的域中,整数的安全性不需要超过四分钟。) |
danial · 如何在多个字符串的每个位置找到最频繁的字符 2 年前 |
Manny · 如何比较Perl中的字符串? 2 年前 |
Diret · 获取范围内每个数字的子倍数的算法 2 年前 |
Saif · 排序时python如何决定何时调用比较器? 2 年前 |