网站的加密方案

172 天前
hongye  hongye

有一个网站地址如下: http://xxfb.mwr.cn/sq_dxsk.html 直接看这个页面上中文都是正常的,但是如果我拷贝一些中文字段再粘贴发现就会乱码,比如页面上显示“珠江” 使用 ctrl + c 复制后,粘贴在本地的记事本上会变成 “䆔䂒”。请问这是用啥技术实现的啊?

1620 次点击
所在节点   问与答  问与答
10 条回复
wOuv7i4e7XxsSOR1
wOuv7i4e7XxsSOR1
172 天前
特殊的字体,用来反爬的
fulajickhz
fulajickhz
172 天前
这种你试试 用 ublock 停止 javascript 说不定这功能就废了
mringg
mringg
172 天前
自己弄的字体库,一共 744 个字,自己做下映射吧
scyuns
scyuns
172 天前
好有意思 自定义了一个字典表
xR13zp0h67njQr2S
xR13zp0h67njQr2S
172 天前
502,看不到了
Latin
Latin
172 天前
hongye
hongye
172 天前
500
500
172 天前
要爬这个的话先请求 **http://xxfb.mwr.cn/sq_dxsk.html** 获取到 loadData() 里的 URL

```
http://xxfb.mwr.cn/一级随机/二级随机
```

**loadData()** 里面请求数据的 URL 是服务器动态生成的,虽然每次都不一样,但是又可以重复使用,不知道是不是忘了做频率限制,或者会偷偷后台统计?

再从 URL 获取 JSON 数据,数据的格式是:

```
"#UEO3kxleHI_1725353725381otltag䌙䅭#FontTag"
```

对应

```
"#{字体文件名}otltag{内容}#FontTag"
```

这个字体文件只有 744 个字形,除去前后两个空白字形,有用的只有 742 个字形,可以根据字形顺序建立对照表;
每次请求数据时服务器会动态偏移字体的 code point ,生成新的字体文件;
根据观察每次生成的字体文件中字形顺序没有改变,而且每个字形的 code point 相差都是 2 ,所以只需要根据字体名称请求字体文件;

```
http://xxfb.mwr.cn/ttf/{字体文件名}.ttf
```

获取到第 1 个有用的字形的 code point ,也就是索引 1 处的 code point ,就可以根据字形顺序推导出其他字形的 code point ;

最后把内容转换成 unicode 码位,把字形的 code point 转换成 16 进制,两边匹配一下就可以得到实际看到的内容了。
500
500
172 天前
不过用动态字体文件反爬,应当只用在金额、数量这种比较重要的数字信息上,把汉字放进去太影响性能和用户体验了
hongye
hongye
172 天前
@500 #8 感谢大佬👍

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1069897

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX