׿ԽƱֻapp_Baidu搜索 真实链接加密逻辑

LeoXu1990 发布于 12/02 14:16
阅读 224
收藏 0

百度吧真实的搜索结果链接隐藏起来, 我很好奇他们是怎么做的.

http://www.baidu.com/link?url=sdeu2FwVJRTWmFTJ2or9kHJApu_UaByDhoPUc5wI5I7Esla9tF3rriqWEo5tDKpxvfRkHmChe_aGwLw2njJGsLuVP5CA84hg-ZKgPp5RFN3

有以下几个特点:

1) 同一个真实的url 每次加密后的结果不同. 比如www.a.com 你查询10次这个真实的link的加密结果都不同

2) 加密后的url不受时间限制. 5年前甚至更久远的加密url都可以访问, 所以我觉得是一个不需要key来解密的算法

3) 每天这么大量的url加密解密算法的性能肯定很快, 不会是特别吃资源的算法

有没有可能是一种改良过的base64或者是ProtoBuf这种算法. 但是每次结果都不同 还都能解析回去这个我不太理解. 

有没有这方面的大神指点下.

满足下我的好奇心

谢谢

加载中
0
自由PHP
自由PHP

我不懂算法,但是最近有涉及到php的open_ssl加密中的aes加密,每次生成的加密结果都不同,而且都能解密;可能在此基础上再进行了特殊字符的替换,然后再通过一定规律打散。

LeoXu1990
LeoXu1990
谢谢 我去看看资料
0
SpringBoot中文社区
SpringBoot中文社区

加密加上当前时间戳啥的,不就每次都不一样了么?

LeoXu1990
LeoXu1990
那怎么解释几年前的加密还能用呢, 而且是一直能用. 密钥不能升级. baidu必须保证自己生产的任何加密link在任何时间都能被解密. 也就是说如果密钥外泄, 那么baidu只能认栽
0
haitaosoft
haitaosoft

这种算混淆。

׿ԽƱֻapp最直接的就是 伪随机流异或,但取一个64位随机数作为种子,直接放在结果的前64位,后面是按这个种子生成的伪随机数逐字节异或得到的结果。

解密时反过来操作就行了

haitaosoft
haitaosoft
回复 @LeoXu1990 : 这个种子就在结果中!所以,后台不用保存。 只是外人不知道它的机制(包括:种子在什么位置)而已
LeoXu1990
LeoXu1990
是不是说只要拿到这个64位种子就能解密了?
返回顶部
顶部