• Stars
    star
    156
  • Rank 239,589 (Top 5 %)
  • Language
    Python
  • License
    MIT License
  • Created about 8 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

ϲοnfuѕаblе_һοmоɡlyphs

confusable_homoglyphs [doc]

Documentation Status

a homoglyph is one of two or more graphemes, characters, or glyphs with shapes that appear identical or very similar wikipedia:Homoglyph

Unicode homoglyphs can be a nuisance on the web. Your most popular client, AlaskaJazz, might be upset to be impersonated by a trickster who deliberately chose the username ΑlaskaJazz.

  • AlaskaJazz is single script: only Latin characters.
  • ΑlaskaJazz is mixed-script: the first character is a greek letter.

You might also want to avoid people being tricked into entering their password on www.microsоft.com or www.faϲebook.com instead of www.microsoft.com or www.facebook.com. Here is a utility to play with these confusable homoglyphs.

Not all mixed-script strings have to be ruled out though, you could only exclude mixed-script strings containing characters that might be confused with a character from some unicode blocks of your choosing.

  • Allo and ρττ are fine: single script.
  • AlloΓ is fine when our preferred script alias is 'latin': mixed script, but Γ is not confusable.
  • Alloρ is dangerous: mixed script and ρ could be confused with p.

This library is compatible Python 2 and Python 3.

API documentation

Is the data up to date?

Yep.

The unicode blocks aliases and names for each character are extracted from this file provided by the unicode consortium.

The matrix of which character can be confused with which other characters is built using this file provided by the unicode consortium.

This data is stored in two JSON files: categories.json and confusables.json. If you delete them, they will both be recreated by downloading and parsing the two abovementioned files and stored as JSON files again.

More Repositories

1

v8-bailout-reasons

🔧 A list of Crankshaft bailout reasons with examples
902
star
2

resrc

HTML
609
star
3

monomorphist

monomorphist - a JavaScript performance companion
JavaScript
33
star
4

free-programming-books-lint

A rudimentary Markdown linter based on remark-lint for the free-programming-books project.
JavaScript
30
star
5

redis-sentinel-docker-example

Shell
24
star
6

remark-lint-no-empty-sections

remark-lint-no-empty-sections
JavaScript
9
star
7

bplustree

A B+ Tree ES2015 implementation
JavaScript
9
star
8

unicode-syndication-proposal

TeX
7
star
9

remark-lint-alphabetize-lists

remark-lint-alphabetize-lists
JavaScript
7
star
10

remark-lint-books-links

remark-lint-books-links
JavaScript
6
star
11

remark-lint-blank-lines-1-0-2

remark-lint-blank-lines-1-0-2
JavaScript
6
star
12

remark-lint-no-url-trailing-slash

remark-lint-no-url-trailing-slash
JavaScript
5
star
13

distance-to-polygon

npm install --save distance-to-polygon
JavaScript
5
star
14

plotwork

JavaScript
4
star
15

js-index-data-structures

Benchmarking several JS data structures suitable for indexing needs
JavaScript
4
star
16

parareq

Elixir
3
star
17

stanford-spark

Run Stanford CoreNLP with Apache Spark
Scala
3
star
18

kwak_cli

CLI client for
Python
2
star
19

github-feed-blacklist

A Chrome extension to unclog your github feed.
JavaScript
2
star
20

remark-lint-heading-whitespace

JavaScript
2
star
21

flow-demo

tiny project I annotated live to demo flow at @upfrontIO
JavaScript
1
star
22

mocha-babel-flow

JavaScript
1
star
23

glass

Python
1
star
24

absorb

a simple JS game
JavaScript
1
star
25

log-anything

A dead simple JS debug/logging utility
JavaScript
1
star
26

jquery-table-filter

jquery plugin to filter HTML table rows
JavaScript
1
star
27

esm

node demo: esm and cjs interop
JavaScript
1
star
28

remark-playground

JavaScript
1
star