{"id":13456944,"url":"https://github.com/MaximeBeasse/KeyDecoder","last_synced_at":"2025-03-24T11:32:07.218Z","repository":{"id":50451711,"uuid":"276180695","full_name":"MaximeBeasse/KeyDecoder","owner":"MaximeBeasse","description":"KeyDecoder app lets you use your smartphone or tablet to decode your mechanical keys in seconds.","archived":false,"fork":false,"pushed_at":"2024-02-04T23:25:50.000Z","size":1976,"stargazers_count":3114,"open_issues_count":6,"forks_count":187,"subscribers_count":43,"default_branch":"master","last_synced_at":"2025-03-23T20:54:44.357Z","etag":null,"topics":["card","duplicate-keys","infosec","keydecoder","locksmith","pentesters","picture","security-enthusiasts"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaximeBeasse.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":"2020-06-30T18:39:41.000Z","updated_at":"2025-03-23T11:32:15.000Z","dependencies_parsed_at":"2024-07-31T08:25:03.688Z","dependency_job_id":null,"html_url":"https://github.com/MaximeBeasse/KeyDecoder","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximeBeasse%2FKeyDecoder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximeBeasse%2FKeyDecoder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximeBeasse%2FKeyDecoder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaximeBeasse%2FKeyDecoder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaximeBeasse","download_url":"https://codeload.github.com/MaximeBeasse/KeyDecoder/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245261002,"owners_count":20586510,"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":["card","duplicate-keys","infosec","keydecoder","locksmith","pentesters","picture","security-enthusiasts"],"created_at":"2024-07-31T08:01:30.622Z","updated_at":"2025-03-24T11:32:07.192Z","avatar_url":"https://github.com/MaximeBeasse.png","language":"Dart","readme":"# KeyDecoder\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"assets/icon.png\" height=\"200\"\u003e\n\u003c/p\u003e\n\n[![](https://i.imgur.com/A6VloCD.png)](https://ats1851.com/en/about/) \u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;\u0026nbsp;[![](https://i.imgur.com/LXuYEAa.png)](https://www.esiea.fr/expertise-confiance-numerique-securite/)\n\n**KeyDecoder** is a mobile app created for pentesters and security enthusiasts.\nFrom the picture of a key, one can measure its bitting easily.\n\nDevelopped by [*Maxime BEASSE*](https://twitter.com/maxime_beasse) and [*Quentin CLEMENT*](https://twitter.com/0x2f2f).\n\nIn partnership with [FrenchKey](https://intrusion.eu/en/home/) and [CNS](https://www.esiea.fr/expertise-confiance-numerique-securite/) from [ESIEA](https://www.esiea.fr/).\n\nPowered by [Flutter (3.13.6)](https://flutter.dev) and [OpenCV (4.3.0)](https://opencv.org/)\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"https://lh3.googleusercontent.com/A_Xf4iP53YZ1-LiREhA-F8Zc60vKMGVieNlORz-UP--VNtGgTxQK03jlxDfWUi2SqHc\"\u003e\n\u003c/p\u003e\n\n# Summary\n\n\u003c!-- ts --\u003e\n   * [KeyDecoder](#keydecoder)\n   * [Summary](#summary)\n   * [Disclamer](#disclamer)\n   * [Installation](#installation)\n      * [Build](#build)\n        * [Android](#android)\n        * [IOS](#ios)\n      * [Releases](#releases)\n   * [Usage](#usage)\n      * [Take Picture](#take-picture)\n      * [Cropping](#cropping)\n      * [Back line](#back-line)\n      * [Shoulder line](#shoulder-line)\n      * [Measurements](#measurements)\n   * [FAQ](#faq)\n   * [License](#license)\n\u003c!--te--\u003e\n\n# Disclamer\n\n## Making keys without consent is illegal.\n\nThis Key Decoding application is only meant for legal use. If you have unlawful intentions, you're are not allowed to use this application.\nTo limit the risk of illegal use, an ISO sized card is necessary to decode a mechanical key, and the key must be taken off from its keyring.\nWe will provide no help nor assistance to any user that we believe is willing to commit a crime or a felony. \n\n## Educational and Consulting use only.\n\nThis Key Decoding app is meant to be used by Pentesters during their audits, to explain to their clients how easily a criminal can duplicate keys (from picture, by molding, or simply by asking a local locksmith to make a duplicate). Fair use is allowed if used by security enthusiasts, to assess their own security, and discover the difficulty of making keys only using a picture. \nThe authors DO NOT ALLOW any users to sell keys created with the help of this app. Rulebreakers are subject to lawsuit.\n\n## Security advice.\n\nIf you want to protect yourself from having your keys duplicated without your consent (with a picture, or by molding, or more simply by someone asking a locksmith to make a copy), you are invited to apply the same best practices to your keys as you do with your Credit Card or your Password. Just like credit cards and passwords, you must not lend your keys, or leave them unattended.\n\n\u003cp align=\"center\" style=\"font-size:30px\"\u003e\n\u003cstrong\u003eHave Fun, Stay Legal, Hide your keys.\u003c/strong\u003e\n\u003c/p\u003e\n\n*****\n\n# Installation\n\n[\u003cimg src=\"https://play.google.com/intl/en_us/badges/images/generic/en_badge_web_generic.png\"\n      alt=\"Get it on Google Play\"\n      height=\"70\"\u003e](https://play.google.com/store/apps/details?id=com.keydecoder)\n\n## Build\n\n* To install Flutter, it is recommended to use [fvm](https://fvm.app/), a Flutter Version Management tool. But you can also use the official [Flutter installation guide](https://flutter.dev/docs/get-started/install).\n  * The project is built using Flutter `v3.13.6`\n\n### Android\n\n* Download [OpenCV-Android-SDK v4.3.0](https://sourceforge.net/projects/opencvlibrary/files/4.3.0/opencv-4.3.0-android-sdk.zip) and extract it to a directory of your choice. (eg. `C:\\SDK\\OpenCV-android-sdk`)\n* Create the `local.properties` file under `android/`, providing the following settings :\n```sdk.dir=\u003cAndroid SDK path\u003e\nflutter.sdk=\u003cFlutter SDK path\u003e\nflutter.buildMode=release\nflutter.versionName=1.0.0\nflutter.versionCode=1\nopencv.sdk=\u003cOpenCV Android SDK path\u003e\n```\n* Copy the subdirectories in `C:\\...\\OpenCV-android-sdk\\sdk\\native\\libs` to the directory `C:\\...\\keydecoder\\android\\app\\src\\main\\jniLibs`\n* Build the project using `fvm flutter build apk`\n\n### IOS\n\n*IOS is not currently supported*\n\n## Releases\n\nThe most recent builds can be found in the [Play Store](https://play.google.com/store).\n\n# Usage\n\n## Take Picture\n\nTake a picture of a key, removed from its key ring, and place in the middle of an ISO/CEI 7810 ID-1 sized card (credit card, business card...). \nIt is very important that the card measures exactly 85,60 by 53,98 mm (3 3⁄8 in × 2 1⁄8 in).\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"assets/card_key.png\" width=\"400\"\u003e\n\u003c/p\u003e\n\n*A well lightened and high res picture will give better results.*\n\n## Cropping\n\nUse the green lines to crop the image to only retain the card.\nYou can zoom to be more precise.\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"assets/crop_card.png\" width=\"400\"\u003e\n\u003c/p\u003e\n\n## Back line\n\nAlign the red line to match the back of the key.\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"assets/back_key.png\" width=\"400\"\u003e\n\u003c/p\u003e\n\n## Shoulder line\n\nAlign the blue line to the shoulder of the key.\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"assets/shoulder_key.png\" width=\"400\"\u003e\n\u003c/p\u003e\n\n## Measurements\n\nNow, you can place points in the middle of each cuts of your key.\nOnce done, you can validate and retrieve your measures on your project's page.\n\n\u003cp align=\"center\"\u003e\n \u003cimg src=\"assets/measure_key.png\" width=\"400\"\u003e\n\u003c/p\u003e\n\n# FAQ\n\n## What is the purpose of this application?\nThis application is a key decoder tool helping you getting the depths and spaces for a key you own or have legally access to. The decoded data can then be used with the help of a locksmith to obtain a duplicate of the pictured key. \n\n## What is the intended public for using this app?\nThe KeyDecoder app is built for security professionnals such as Pentesters and other security enthusiasts to be able to decode their own keys, or keys of the location they have a legal contract for.\n\n\n## What do you do with my pictures and decoded data?\nNothing. \nWe do not transmit the pictures over the network, we do not retrieve any decoded data.\nEverything the user does with the app, is done locally on his/her phone. As a user, you are responsible for making sure that nobody else gets access to your pictures and decoded data.\n\n\n## Is this app helping criminals to copy my keys without my consent?\nNo. \nIf you make sure to handle your keys with the care they deserve, no criminal will be able to use this application to copy your keys.\nSame as a Password or a Credit Card, a mechanical Key is a sensitive data that you should not share with anybody, and that you should not leave unattended. Otherwise, someone can easily go to a nearby locksmith, or make a molding duplicate in seconds.\nAdditionnaly, the need for an ISO sized card as a dimensionnal reference prevents any decoding using a picture taken \"on the fly\". A criminal could copy your keys with this app only if you let them do it.\n\n****\n\n## LIMITED WARRANTY\nTHE PROGRAM IS PROVIDED TO YOU \"AS IS,\" WITHOUT WARRANTY. THERE IS NO WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n# License\n**TL;DR :**\n\nYou ARE NOT ALLOWED to make money (directly or indirectly) by distributing this application, \nits source code or a modification of them, or selling keys made with the help of this app. \nOf course, you ARE NOT ALLOWED to perform any illegal activity using this application.\n\nYou ARE ALLOWED to install, use, read, modify and distribute this application and its source code at no fee. \nYou ARE ALLOWED to produce keys for your own use or to perform a pentest audits, both at your own risks.\n\nYou MUST give credit to original authors and copyright holders when you share this software or a modification of this software, \nand share it under the same conditions.\n\nIf you don't agree, delete it from your device.\n\nThe logo is under copyright and shall not be used without prior written consent of the copyright holder.\nThe only use of the logo authorised is the use for this application and its derivatives as long as they respect the law and ethics.\n","funding_links":[],"categories":["Dart","Fun","红队\u0026渗透测试"],"sub_categories":["Sans"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMaximeBeasse%2FKeyDecoder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMaximeBeasse%2FKeyDecoder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMaximeBeasse%2FKeyDecoder/lists"}