首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解码自定义的62基编码有多困难/容易?

解码自定义的62基编码有多困难/容易?
EN

Stack Overflow用户
提问于 2013-02-22 14:20:48
回答 2查看 1.6K关注 0票数 1

下面是我要对permalinks中的数据库id进行混淆的方法:

1)使用长密钥的异或 id 2) (旋转、翻转、反向)位以可逆的方式在异或整数中稍微环绕 3)用我自己的所有字母数字字符的秘密加扰序列(A-Za-z0-9)对生成的整数进行编码。

将我的Base 62编码转换回基础10有多难?

还有多难反向工程整个过程呢?(显然没有在源代码或编译代码上达到峰值)我知道‘只有XOR’很容易受到基本分析的影响。

编辑:结果应该是不超过8-9个字符长的,3 3DES和AES似乎会产生很长的加密文本,不能在URL中实际使用。

由此产生的字符串如下所示:

代码语言:javascript
复制
In [2]: for i in range(1, 11):
    print code(i)
   ...:     
9fYgiSHq
MdKx0tZu
vjd0Dipm
6dDakK9x
Ph7DYBzp
sfRUFaRt
jkmg0hl
dBbX9nHk4
ifqBZwLW
WdaQE630

正如你所看到的,1看起来一点也不像2,所以这看起来很适合混淆id。

EN

回答 2

Stack Overflow用户

发布于 2013-02-22 15:10:02

如果允许攻击者玩弄输入,熟练的攻击者对数据进行“解密”将是微不足道的。现代密码系统的一个关键特性是"雪崩效应“,这是您的系统所缺乏的。基本上,这意味着输出的每一点都与输入的每一点相连接。

例如,如果允许系统的攻击者看到id = 1000生成输出"ACAAA“,而id=1001生成"ABAAA”,而id=1002生成“ACAAA”,则算法可以很容易地反转,并获得密钥的值。

也就是说,这个问题更适合https://security.stackexchange.com/https://crypto.stackexchange.com/

票数 2
EN

Stack Overflow用户

发布于 2013-02-22 16:19:23

对于任何试图开发自己密码的人来说,标准的建议是“不要”。高级建议是阅读Bruce的给业余密码设计师的备忘录,然后不要。

您不是第一个需要混淆ID的人,所以已经有可用的方法了。@CodesInChaos在上面提出了一个很好的方法;您应该首先尝试一下,看看它是否满足您的需要。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15026255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档