Normalisera förväxlingsbara tecken till säker text
Att normalisera förväxlingsbara tecken innebär att varje dubbelgångare ersätts med det vanliga tecken den härmar, så att två strängar som ser likadana ut också blir lika vid jämförelse. Gör det innan du jämför användarnamn, matchar mot spärrlistor eller tar bort dubbletter av id:n.
Genomräknat exempel
- Indata
- Cоnfig file: аdmin2, Noёl, café
- Hittade skriftsystem
- latinska (Latn), kyrilliska (Cyrl)
- Flaggade tecken
- 7
| Position | Tecken | Kodpunkt | Skriftsystem | Ersättning | Regel |
|---|---|---|---|---|---|
| 0 | C | U+FF23 | latinska | C | NFKC-normalisering |
| 1 | о | U+043E | kyrilliska | o | Förväxlingstabell |
| 7 | fi | U+FB01 | latinska | fi | NFKC-normalisering |
| 10 | : | U+FF1A | gemensamma | : | Förväxlingstabell |
| 12 | а | U+0430 | kyrilliska | a | Förväxlingstabell |
| 17 | 2 | U+FF12 | gemensamma | 2 | Förväxlingstabell |
| 22 | ё | U+0451 | kyrilliska | ë | Förväxlingstabell |
- Bevara läsbar Unicode
- Config file: admin2, Noël, café
- Strikt ASCII-reserv
- Config file: admin2, Noel, café
Så fungerar det
- Kända dubbelgångare ersätts först enligt den inbyggda tabellen. Tecken utanför tabellen normaliseras med NFKC, som omvandlar fullbreddsformer, ligaturer och andra kompatibilitetstecken till sina standardmotsvarigheter.
- Bevara läsbar Unicode behåller en bokstav med diakritiskt tecken när tabellen anger en, till exempel kyrilliskt ё → ë. Strikt ASCII-reserv använder i stället den vanliga ASCII-bokstaven (ё → e).
- Bokstäver som varken finns i tabellen eller ändras av NFKC behålls, så café behåller sin accent i båda lägena. Normaliserad text är en jämförelsenyckel, inte en säkerhetsbedömning: spara även originalet och granska flaggade tecken.
Konvertering är den bästa ansträngningen: mappade förväxlingsobjekt och NFKC-vikning är deterministiska, men viss legitim Unicode kommer inte att flaggas.
Din text
Klistra in eller skriv — resultaten uppdateras när du skriver (lätt avstudsad för lång inmatning).
30 tecken skannade
7 misstänkta
Strikt ASCII-reserv
Original (misstänkta tecken markerade)
Misstänkta tecken i den ursprungliga vyn är understrukna och märkta "susp". förutom att markera färg.
suspicious character Csuspicious character оnfig suspicious character filesuspicious character : suspicious character аdminsuspicious character 2, Nosuspicious character ёl, café
Rensad utdata
Teckenanalys
| Index (0-baserat) | Original | Byte | Kodpunkt | Anledning |
|---|---|---|---|---|
| 0 | C | C | U+FF23 | NFKC normalization changed this character (compatibility or width folding). |
| 1 | о | o | U+043E | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 2 | n | n | U+006E | Not flagged as a confusable or compatibility character. |
| 3 | f | f | U+0066 | Not flagged as a confusable or compatibility character. |
| 4 | i | i | U+0069 | Not flagged as a confusable or compatibility character. |
| 5 | g | g | U+0067 | Not flagged as a confusable or compatibility character. |
| 6 | U+0020 | Not flagged as a confusable or compatibility character. | ||
| 7 | fi | fi | U+FB01 | NFKC normalization changed this character (compatibility or width folding). |
| 8 | l | l | U+006C | Not flagged as a confusable or compatibility character. |
| 9 | e | e | U+0065 | Not flagged as a confusable or compatibility character. |
| 10 | : | : | U+FF1A | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 11 | U+0020 | Not flagged as a confusable or compatibility character. | ||
| 12 | а | a | U+0430 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 13 | d | d | U+0064 | Not flagged as a confusable or compatibility character. |
| 14 | m | m | U+006D | Not flagged as a confusable or compatibility character. |
| 15 | i | i | U+0069 | Not flagged as a confusable or compatibility character. |
| 16 | n | n | U+006E | Not flagged as a confusable or compatibility character. |
| 17 | 2 | 2 | U+FF12 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 18 | , | , | U+002C | Not flagged as a confusable or compatibility character. |
| 19 | U+0020 | Not flagged as a confusable or compatibility character. | ||
| 20 | N | N | U+004E | Not flagged as a confusable or compatibility character. |
| 21 | o | o | U+006F | Not flagged as a confusable or compatibility character. |
| 22 | ё | e | U+0451 | Non-ASCII confusable mapped to a safer Latin ASCII equivalent. |
| 23 | l | l | U+006C | Not flagged as a confusable or compatibility character. |
| 24 | , | , | U+002C | Not flagged as a confusable or compatibility character. |
| 25 | U+0020 | Not flagged as a confusable or compatibility character. | ||
| 26 | c | c | U+0063 | Not flagged as a confusable or compatibility character. |
| 27 | a | a | U+0061 | Not flagged as a confusable or compatibility character. |
| 28 | f | f | U+0066 | Not flagged as a confusable or compatibility character. |
| 29 | é | é | U+00E9 | Not flagged as a confusable or compatibility character. |