检测域名、用户名和消息中的同形字
同形字是外观与另一个更常见字符相同的字符:西里尔字母 а(U+0430)和拉丁字母 a(U+0061)在大多数字体中一模一样,但码位不同。检测器会检查每个字符,并列出每个仿冒字符的位置、码位、Unicode 文字系统以及它所模仿的字符。
实例解析
- 输入
- pаypаl.com / Αdmіn
- 检测到的文字系统
- 拉丁文 (Latn), 西里尔文 (Cyrl), 希腊文 (Grek)
- 已标记字符
- 4
| 位置 | 字符 | 码位 | 文字系统 | 替换为 | 规则 |
|---|---|---|---|---|---|
| 1 | а | U+0430 | 西里尔文 | a | 易混淆字符映射表 |
| 4 | а | U+0430 | 西里尔文 | a | 易混淆字符映射表 |
| 13 | Α | U+0391 | 希腊文 | A | 易混淆字符映射表 |
| 16 | і | U+0456 | 西里尔文 | i | 易混淆字符映射表 |
- 保留可读的 Unicode
- paypal.com / Admin
工作原理
- 每个字符都会与内置映射表比对,表中收录了常见的西里尔字母、希腊字母、拉丁变体和全角仿冒字符。匹配的字符会连同它所模仿的 ASCII 字母、数字或标点一起标记。
- 不在映射表中的字符会经过 Unicode NFKC 规范化。如果 NFKC 改变了它们(例如全角字母和 fi 之类的连字),就会作为兼容字符被标记。
- 位置按 Unicode 码位从 0 开始计数。一个单词中混用拉丁字母和西里尔或希腊字母是明显的危险信号,因为正常单词几乎不会在中间切换文字系统。
转换是尽力而为:映射的易混淆项和 NFKC 折叠是确定性的,但某些合法的 Unicode 不会被标记。
您的文字
粘贴或键入 — 结果会在您键入时更新(对于长输入会稍微去抖)。
已扫描 18 个字符
4 个可疑项
保留可读的 Unicode
原文(可疑字符已标记)
原始视图中的可疑字符带有下划线并标记为“可疑”。除了突出颜色。
psuspicious character аypsuspicious character аl.com / suspicious character Αdmsuspicious character іn
清理后的输出
字符分析
| 索引(从0开始) | 原字符 | 替换为 | 代码点 | 原因 |
|---|---|---|---|---|
| 0 | p | p | U+0070 | Not flagged as a confusable or compatibility character. |
| 1 | а | a | U+0430 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 2 | y | y | U+0079 | Not flagged as a confusable or compatibility character. |
| 3 | p | p | U+0070 | Not flagged as a confusable or compatibility character. |
| 4 | а | a | U+0430 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 5 | l | l | U+006C | Not flagged as a confusable or compatibility character. |
| 6 | . | . | U+002E | Not flagged as a confusable or compatibility character. |
| 7 | c | c | U+0063 | Not flagged as a confusable or compatibility character. |
| 8 | o | o | U+006F | Not flagged as a confusable or compatibility character. |
| 9 | m | m | U+006D | Not flagged as a confusable or compatibility character. |
| 10 | U+0020 | Not flagged as a confusable or compatibility character. | ||
| 11 | / | / | U+002F | Not flagged as a confusable or compatibility character. |
| 12 | U+0020 | Not flagged as a confusable or compatibility character. | ||
| 13 | Α | A | U+0391 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 14 | d | d | U+0064 | Not flagged as a confusable or compatibility character. |
| 15 | m | m | U+006D | Not flagged as a confusable or compatibility character. |
| 16 | і | i | U+0456 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 17 | n | n | U+006E | Not flagged as a confusable or compatibility character. |