![]() |
1
1
考虑一个基于Feistel网络的非常简单的方案来排列,例如,票据ID号。 This message (这恰好在PostgreSQL列表中,但与PostgreSQL没有太多关系)描述了一个简单的 Feistel network . 在每张票上,您可以打印一个票ID号(按顺序选择),然后打印一个“票密码”,这是通过Feistel网络输入ID号的结果。可能的变化包括在密码上附加一个校验位,并将输入建立在Feistel网络的基础上,而不仅仅是顺序生成的数字(数字+10000*事件ID号,等等)。 |
![]() |
2
12
为什么要重新发明轮子?只需这样做(python代码,如果需要澄清,请询问我):
例子: 事件编号1 票号123
Ticketman先生带着他的验证器过来,输入事件/票号和散列:
|
![]() |
3
5
我建议你给 Verhoeff algorithm 尝试一下。 |
![]() |
4
3
我可以看到两种方式:
|
![]() |
5
0
对于离线验证,我只看到一个简单的解决方案。 在票据ID后面附加一个票据ID的散列值和一个每个事件的salt。您可以将任何加密哈希截断到所需的大小。我想不出一个特殊的原因来使用任何东西,除了一个随机数作为基票ID本身。 这允许您限制票据ID的大小,并具有与票据ID大小明显成比例的安全性。 |
![]() |
6
0
你可以做一个CRC计算。 基本上,只需开始在字符串中添加每个字符,并将长度限制为一个长整数。 您可以从一个已知的随机数开始,并将其存储在前4个字节中,最后4个字节是我前面描述的一个计算。 这将是两个整数,或者八个字节。 |
![]() |
7
0
这里有一个方案,它的优点是允许您从上一个计算下一个票散列(这样您就可以验证是否缺少一个票散列),但不允许外部人员计算下一个票散列:
哪里
|
![]() |
zoid_ · 如何将列表中的一个项目更改为另一个列表中的另一个项目? 3 年前 |
![]() |
YungOne · 如何将RSA私钥转换为pem 3 年前 |
![]() |
Annie Nguyen · 使用函数对字符串进行加密/解密 3 年前 |
![]() |
Louis · 在Java中存储令牌/密码的最佳实践 3 年前 |
![]() |
beginner_geek07 · 为什么我的输出是“无”? 3 年前 |