哪种"好"块加密算法的输出最短?

joe*_*ker 16 encryption

我想给客户一个随机的订单号,但在后端使用0,1,2,.... 这样,客户获得带有加密订单号的非密码保护订单状态URL,并且他们无法通过添加或减去1来查看其他客户的订单号.这可能会替换生成随机订单密钥的方案,检查唯一性在所有先前的订单中,并重新生成,直到唯一.当Web服务器收到查看订单的请求时,它会解密订单号并检索订单.

为了保持URL简短,什么"好"的加密算法具有最短的块大小?这个计划是个好主意吗?(如果我加密Apple,Inc.的员工ID以阻止史蒂夫乔布斯要求员工#0怎么办?)

请注意,所有包跟踪网站都允许您无需身份验证即可跟踪包.可以限制无密码订单状态页面上显示的信息量.

Mic*_*lGG 12

出于安全原因,大多数分组密码将使用大于32位大小的块.

但是,我发现了一个专门用于你正在做的事情:Skip32

您可以考虑使用GUID,但也许您有理由想要避免这种情况.(说,您的应用已经完成.)

编辑: 实际上,如果允许GUID,那么这将为您提供128位的范围.您可以轻松使用任何其他分组密码.拥有更大空间(以长ID字符串为代价)的好处是,您可以获得更多来自人们猜测ID的保护.(并不是说订单ID本身应该是一个安全令牌......)

  • @Liudvikas:隐藏订单号是本练习的要点之一,这样客户无法猜测我们的公司规模有多小,我们的订单数量增长的速度有多慢. (3认同)