![]() |
1
5
客户是否需要分发模糊的连续订单号,以使其看起来特别像什么?
如果您不想让自己的加密复杂化,可以使用位洗牌和一点随机跳跃(如果您有位/数字备用)xor的组合,它叠加在某个固定常量上(或者某个函数,该函数随时可以与模糊的订单ID一起使用,例如
编辑 客户的所有愿望似乎都是希望外部当事人无法推断销售的进展。在这种情况下,一个解组解决方案(位映射,例如原始位1映射到模糊位6,原始位6映射到模糊位3等)应该足够。如果你真的想让它更难破解,添加一些随机位,前提是你有额外的位可用(例如,假设原始订单号最多只能达到6位,但在模糊订单号中允许8-9位,那么在执行位映射之前,你可以使用2-3位来实现随机性)。可能是xor的附加恐吓的结果(好奇的一方可能试图产生两个连续的模糊的命令,xor它们对彼此以消除xor常数,然后必须推断出哪些非零位来自salt,哪些来自增量,以及他是否真的得到了两个连续的我的订单号是不是…他必须重复这一步骤,希望其中有相当一部分是连续的订单号,以便破解。) 编辑2 当然,您可以为模糊的订单ID分配完全随机的数字,存储与持久存储(例如db)的对应关系,并对相同的存储执行冲突检测和消除模糊。如果你问我的话有点过分了,但从积极的方面来说,这是最好的混淆(你实现了你灵魂想要的任何分布功能, 和 您可以随时更改分发功能。) |
![]() |
2
15
随机选择一个8或9位数字,比如839712541。然后,取您的订单号的二进制表示形式(在本例中,我不使用2的补码),将其填充到相同的位数(30),将其反转,然后xor翻转订单号和幻数。例如:
要返回订单号,请将输出号与您的幻数异或,转换为位字符串,然后反转。 |
![]() |
4
4
在9位数字中,第一位数字是介于0和7(或1-8)之间的随机索引。在那个位置再加一个随机数字。其余为“实际订单号:
您可以决定第5位(或任何其他)数字是索引。 或者,如果您可以使用6位数的实数,那么您也可以引入“二级”索引。你可以颠倒“实数”的数字顺序。 |
![]() |
5
3
我看得太晚了,(!)因此我迟来的回应。它可能对以后的人有用。 你说:“我的第三个想法是”嗯,只加密该死的东西,“但是如果我使用一个股票加密库,我就必须对它进行后处理,才能得到8或9位数的要求。” 没错。加密是可逆的,并且保证对于给定的输入是唯一的。正如您指出的,大多数标准加密没有正确的块大小。但是有一个, Hasty Pudding Cipher 它可以有从1位以上的任何块大小。 或者你可以自己写。假设你不需要国家安全局不能破解的东西,那么你可以构造一个简单的 Feistel cipher 满足你的需求。 |
![]() |
6
0
如果您的订单ID是唯一的,那么您只需制作一个前缀,并将该前缀与您的订单ID进行添加/混合即可。 像这样:
|
![]() |
7
-1
|
![]() |
Community wiki · 构造和验证Gigya签名 1 年前 |
![]() |
Adam · Django+iis请求。身体问题 7 年前 |
![]() |
IMAN4K · 将ASCII字符串转换为7位GSM编码方案 7 年前 |
![]() |
iphonic · NSString解码 7 年前 |
![]() |
a4w · 使用base64编码大文件 7 年前 |
![]() |
Stanleyrr · 测试集的反向差分编码是如何工作的? 7 年前 |
![]() |
Girish · php导入csv特殊字符问题 7 年前 |
![]() |
jpn · 如何将加密的256位转换为20位表示 7 年前 |