{"id":18464869,"url":"https://github.com/acceis/unisec","last_synced_at":"2025-10-31T05:36:25.401Z","repository":{"id":182796635,"uuid":"669133475","full_name":"Acceis/unisec","owner":"Acceis","description":"Unicode Security Toolkit","archived":false,"fork":false,"pushed_at":"2024-10-07T20:23:42.000Z","size":718,"stargazers_count":35,"open_issues_count":7,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-14T05:18:10.757Z","etag":null,"topics":["cldr","confusables","homoglyphs","icu","security","surrogates","unicode","unicode-tools","utf-16","utf-32","utf-8"],"latest_commit_sha":null,"homepage":"https://acceis.github.io/unisec","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Acceis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-21T12:26:40.000Z","updated_at":"2025-05-15T04:45:19.000Z","dependencies_parsed_at":"2024-03-14T10:30:02.551Z","dependency_job_id":"9bb3bd92-d92d-4230-9cae-92c397c434be","html_url":"https://github.com/Acceis/unisec","commit_stats":null,"previous_names":["acceis/unisec"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/Acceis/unisec","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Acceis%2Funisec","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Acceis%2Funisec/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Acceis%2Funisec/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Acceis%2Funisec/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Acceis","download_url":"https://codeload.github.com/Acceis/unisec/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Acceis%2Funisec/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260314875,"owners_count":22990658,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cldr","confusables","homoglyphs","icu","security","surrogates","unicode","unicode-tools","utf-16","utf-32","utf-8"],"created_at":"2024-11-06T09:11:21.768Z","updated_at":"2025-10-31T05:36:20.362Z","avatar_url":"https://github.com/Acceis.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# unisec\n\n[![GitHub forks](https://img.shields.io/github/forks/acceis/unisec)](https://github.com/acceis/unisec/network)\n[![GitHub stars](https://img.shields.io/github/stars/acceis/unisec)](https://github.com/acceis/unisec/stargazers)\n[![GitHub license](https://img.shields.io/github/license/acceis/unisec)](https://github.com/acceis/unisec/blob/master/LICENSE)\n[![Rawsec's CyberSecurity Inventory](https://inventory.raw.pm/img/badges/Rawsec-inventoried-FF5050_flat.svg)](https://inventory.raw.pm/tools.html#unisec)\n\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/acceis/unisec/ruby.yml?branch=master)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/y/acceis/unisec)\n\n![](https://acceis.github.io/unisec/_media/unisec-logo.png)\n\n\u003e Unicode Security Toolkit\n\n## What is it?\n\nA CLI tool and library to play with Unicode security.\n\n## Features\n\n- **BiDi spoofing**\n  - Craft payloads for attack using BiDi code points (e.g. spoofing a domain name or a file name)\n- **Confusables / homoglyphs**\n  - List confusables characters for a given character\n  - Replace all characters from a string with random confusables\n- **Hexdump**\n  - UTF-8, UTF-16, UTF-32 hexadecimal dumps\n- **Normalization**\n  - NFC, NFKC, NFD, NFKD normalization forms, HTML escape bypass for XSS\n- **Properties**\n  - Get all properties of a given Unicode character\n  - List code points matching a Unicode property\n  - List all Unicode properties name\n- **Regexp search**\n  - Search for Unicode code point names by regular expression\n- **Size**\n  - Code point, grapheme, UTF-8/UTF-16/UTF-32 byte/unit size\n- **Surrogates**\n  - Code point ↔️ Surrogates conversion\n- **Versions**\n  - Version of Unicode, ICU, CLDR, UCD, gems used in Unisec\n\n## Installation\n\n```plaintext\n$ gem install unisec\n```\n\nCheck the [installation](https://acceis.github.io/unisec/#/pages/install) page on the documentation to discover more methods.\n\n[![Packaging status](https://repology.org/badge/vertical-allrepos/unisec.svg)](https://repology.org/project/unisec/versions)\n[![Gem Version](https://badge.fury.io/rb/unisec.svg)](https://badge.fury.io/rb/unisec)\n![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/acceis/unisec)\n\n## Documentation\n\nHomepage / Documentation: https://acceis.github.io/unisec/\n\n## Author\n\nMade by Alexandre ZANNI ([@noraj](https://pwn.by/noraj/)) at [ACCEIS](https://www.acceis.fr/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facceis%2Funisec","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facceis%2Funisec","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facceis%2Funisec/lists"}