{"id":18039391,"url":"https://github.com/scsmith/obfuscated_identifier","last_synced_at":"2025-04-05T01:13:33.682Z","repository":{"id":56886057,"uuid":"14896128","full_name":"scsmith/obfuscated_identifier","owner":"scsmith","description":"Hide your Rails primary key without the need for token generation and additional index space","archived":false,"fork":false,"pushed_at":"2020-02-13T11:30:45.000Z","size":10,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-01T19:57:57.006Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","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/scsmith.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-12-03T14:36:36.000Z","updated_at":"2020-02-13T11:30:47.000Z","dependencies_parsed_at":"2022-08-21T00:20:49.342Z","dependency_job_id":null,"html_url":"https://github.com/scsmith/obfuscated_identifier","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scsmith%2Fobfuscated_identifier","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scsmith%2Fobfuscated_identifier/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scsmith%2Fobfuscated_identifier/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scsmith%2Fobfuscated_identifier/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scsmith","download_url":"https://codeload.github.com/scsmith/obfuscated_identifier/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247271527,"owners_count":20911587,"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":[],"created_at":"2024-10-30T14:09:19.580Z","updated_at":"2025-04-05T01:13:33.663Z","avatar_url":"https://github.com/scsmith.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Obfuscated Identifier\n\n[![Build Status](https://travis-ci.org/scsmith/obfuscated_identifier.svg?branch=master)](https://travis-ci.org/scsmith/obfuscated_identifier)\n[![Gem Version](https://badge.fury.io/rb/obfuscated_identifier.svg)](https://badge.fury.io/rb/obfuscated_identifier)\n\nHide your Rails primary key without the need for token generation and additional index space.\n\nObfuscate Identifier uses an obfuscation algorithm to generate a unique identifier for your\nexisting primary key. As long as you have the key that was used to create the identifier then you\ncan get back to the original primary key.\n\nThis removes the need for tricks like generating a random number and storing indexing it as the\nprimary key is still used to retrieve the object.\n\nThere are a huge number of options when creating a system like this here are some of the\nconsiderations whilst creating this gem:\n\n  * Identifiers must be unique\n  * Identifiers must be reversible\n  * Identifiers should be consistent, repeat generation should create the same output\n  * Patterns within identifiers should not be 'obvious' (sequences should be avoided)\n  * The algorithm should not be overly complex\n  * The algorithm should 'relatively' computationally inexpensive\n\n### Notes:\n\nObfuscation is not encryption. It's important to note that this isn't really hiding anything,\nif someone really wants to work out your primary key they probably can. This favors simplicity over\nthe quality of the identifier generated.\n\nThis was a very quick stab at an implementation. Pull requests and comments are hugely appreciated!\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n    gem 'obfusicated_identifier'\n\nAnd then execute:\n\n    $ bundle\n\nOr install it yourself as:\n\n    $ gem install obfusicated_identifier\n\n## Usage\n\nTODO: Write usage instructions here\n\n## Contributing\n\n1. Fork it\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin my-new-feature`)\n5. Create new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscsmith%2Fobfuscated_identifier","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscsmith%2Fobfuscated_identifier","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscsmith%2Fobfuscated_identifier/lists"}