ทำให้อักขระที่สับสนได้เป็นข้อความที่ปลอดภัย
การทำให้อักขระที่สับสนได้เป็นมาตรฐาน คือการแทนอักขระเลียนแบบแต่ละตัวด้วยอักขระปกติที่มันเลียนแบบ เพื่อให้สตริงสองชุดที่ดูเหมือนกันเท่ากันเมื่อเปรียบเทียบด้วย ควรทำก่อนเปรียบเทียบชื่อผู้ใช้ จับคู่กับรายการบล็อก หรือลบตัวระบุที่ซ้ำกัน
ตัวอย่างพร้อมคำอธิบาย
- ข้อความที่ป้อน
- Cоnfig file: аdmin2, Noёl, café
- ระบบอักษรที่พบ
- ละติน (Latn), ซีริลลิก (Cyrl)
- อักขระที่ถูกทำเครื่องหมาย
- 7
| ตำแหน่ง | อักขระ | จุดรหัส | ระบบอักษร | อักขระแทนที่ | กฎ |
|---|---|---|---|---|---|
| 0 | C | U+FF23 | ละติน | C | การทำให้เป็นมาตรฐาน NFKC |
| 1 | о | U+043E | ซีริลลิก | o | ตารางอักขระที่สับสนได้ |
| 7 | fi | U+FB01 | ละติน | fi | การทำให้เป็นมาตรฐาน NFKC |
| 10 | : | U+FF1A | สามัญ | : | ตารางอักขระที่สับสนได้ |
| 12 | а | U+0430 | ซีริลลิก | a | ตารางอักขระที่สับสนได้ |
| 17 | 2 | U+FF12 | สามัญ | 2 | ตารางอักขระที่สับสนได้ |
| 22 | ё | U+0451 | ซีริลลิก | ë | ตารางอักขระที่สับสนได้ |
- รักษา Unicode ที่อ่านได้
- Config file: admin2, Noël, café
- ทางเลือก ASCII ที่เข้มงวด
- Config file: admin2, Noel, café
วิธีการทำงาน
- อักขระเลียนแบบที่รู้จักจะถูกแทนที่ตามตารางในตัวก่อน อักขระที่อยู่นอกตารางจะถูกทำให้เป็นมาตรฐานด้วย NFKC ซึ่งแปลงรูปแบบเต็มความกว้าง อักษรควบ และอักขระความเข้ากันได้อื่น ๆ เป็นอักขระมาตรฐานที่เทียบเท่า
- โหมด “รักษา Unicode ที่อ่านได้” จะคงตัวอักษรที่มีเครื่องหมายเสริมไว้เมื่อตารางกำหนดไว้ เช่น ё ซีริลลิก → ë ส่วนโหมด “ทางเลือก ASCII ที่เข้มงวด” จะใช้ตัวอักษร ASCII ธรรมดาแทน (ё → e)
- ตัวอักษรที่ไม่อยู่ในตารางและไม่ถูก NFKC เปลี่ยนจะคงเดิม café จึงยังคงมีเครื่องหมายในทั้งสองโหมด ข้อความที่ทำให้เป็นมาตรฐานแล้วเป็นคีย์สำหรับเปรียบเทียบ ไม่ใช่คำตัดสินด้านความปลอดภัย ควรเก็บต้นฉบับไว้ด้วยและตรวจสอบอักขระที่ถูกทำเครื่องหมาย
การแปลงเป็นความพยายามอย่างดีที่สุด: Confusable ที่แมปไว้และการพับ NFKC นั้นถูกกำหนดไว้ แต่ Unicode ที่ถูกต้องตามกฎหมายบางตัวจะไม่ถูกตั้งค่าสถานะ
ข้อความของคุณ
วางหรือพิมพ์ — ผลลัพธ์จะอัปเดตในขณะที่คุณพิมพ์ (หักล้างเล็กน้อยสำหรับการป้อนข้อมูลแบบยาว)
สแกน 30 อักขระแล้ว
7 รายการน่าสงสัย
ทางเลือก ASCII ที่เข้มงวด
ต้นฉบับ (ทำเครื่องหมายอักขระที่น่าสงสัย)
อักขระที่น่าสงสัยในมุมมองดั้งเดิมจะถูกขีดเส้นใต้และติดป้ายกำกับว่า "ต้องสงสัย" นอกจากจะเน้นสีแล้ว
suspicious character Csuspicious character оnfig suspicious character filesuspicious character : suspicious character аdminsuspicious character 2, Nosuspicious character ёl, café
เอาต์พุตที่สะอาดแล้ว
การวิเคราะห์อักขระ
| ดัชนี (ตาม 0) | ต้นฉบับ | การทดแทน | จุดรหัส | เหตุผล |
|---|---|---|---|---|
| 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. |