{"id":37215068,"url":"https://github.com/ellwould/mfa-view","last_synced_at":"2026-01-15T00:53:04.387Z","repository":{"id":285794799,"uuid":"959362836","full_name":"ellwould/mfa-view","owner":"ellwould","description":"A Go HTTP program to generate MFA codes from a stored secret key and can also add a new MFA key. MFA keys are encrypted and the user's password is hashed and salted.","archived":false,"fork":false,"pushed_at":"2025-07-18T02:19:31.000Z","size":2748,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-06T00:39:14.304Z","etag":null,"topics":["2fa-security","encryption","go","golang","https","login","mfa-authenticator","mit-license","multifactor-authentication","nginx","nginx-proxy","portal","two-factor-authentication","web","website"],"latest_commit_sha":null,"homepage":"https://mfa.ell.today","language":"Go","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/ellwould.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,"zenodo":null}},"created_at":"2025-04-02T17:07:22.000Z","updated_at":"2025-07-18T02:19:34.000Z","dependencies_parsed_at":"2025-04-02T18:34:35.420Z","dependency_job_id":"50cf6f1f-2d28-4019-8e31-35a7b4c2ab7b","html_url":"https://github.com/ellwould/mfa-view","commit_stats":null,"previous_names":["ellwould/mfa-view"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ellwould/mfa-view","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ellwould%2Fmfa-view","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ellwould%2Fmfa-view/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ellwould%2Fmfa-view/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ellwould%2Fmfa-view/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ellwould","download_url":"https://codeload.github.com/ellwould/mfa-view/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ellwould%2Fmfa-view/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28440623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-15T00:34:46.850Z","status":"ssl_error","status_checked_at":"2026-01-15T00:34:46.551Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["2fa-security","encryption","go","golang","https","login","mfa-authenticator","mit-license","multifactor-authentication","nginx","nginx-proxy","portal","two-factor-authentication","web","website"],"created_at":"2026-01-15T00:53:03.885Z","updated_at":"2026-01-15T00:53:04.374Z","avatar_url":"https://github.com/ellwould.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MFA View\n\n### A Go HTTP program to generate MFA codes from a stored secret key and can also add a new MFA key.\n### MFA keys are encrypted and the user's password is hashed and salted.\n\n#### (Built using operating system - Ubuntu 22.04.5 LTS)\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n### Access demo site at https://mfa.ell.today\n#### Demo username is: `demo@ell.today`\n#### Demo password is: `passwordpasswordpassword1$`\n#### Demo 2FA secret key is: `IHJU2OCCJCGAH5CMTSIBPU66SVLDVIRV`\n#### or scan the QR code below for secret key\n\n\u003cbr\u003e\n\u003cbr\u003e\n\n#### MFA View can be installed easily with the BASH script - [install-mfaview.sh](https://github.com/ellwould/mfa-view/blob/main/install-mfaview.sh)\n\n#### MFA View can be un-installed easily with the BASH script - [uninstall-mfaview.sh](https://github.com/ellwould/mfa-view/blob/main/uninstall-mfaview.sh)\n\n---\n\n## Website:\n\n### Login page:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/WEB_login_page.png)\n\n### Logging in with no MFA accounts present:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/WEB_no_MFA_accounts_added.png)\n\n### Adding a MFA acount:\n#### (In this example I generated a random secret key for the purpose of demonstrating - `V2J6E2BTG3LPGRWB63CVCKXXRGENYS3K`)\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/WEB_adding_a_MFA_account.png)\n\n### Logging in with a MFA account present:\n#### (Java Script used to create a copy to clipboard button)\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/WEB_new_MFA_code_avaiable.png)\n\n### Screenshot of he mfaview-key.csv file (located in /etc/mfaview/key) showing the secret key is encrypted:\n#### (AES encryption used)\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_encrypted_secret_key.png)\n\n### Add MFA account page switched off in the configuration file:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/WEB_account_page_switched_off.png)\n\n### Examples of validation on the login page:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/WEB_wrong_details_entered.png)\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/WEB_password_entered_wrong_length.png)\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/WEB_no_2FA_entered.png)\n\n---\n\n## CLI:\n\n### Adding an email address:\n#### (`demo@ell.today` was used)\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_creating_an_email.png)\n\n### Adding a password:\n#### (Easy example password used was `passwordpasswordpassword1$`):\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_creating_a_password.png)\n\n### Generating a 2FA secret key:\n#### (Secret key generated - `IHJU2OCCJCGAH5CMTSIBPU66SVLDVIRV`)\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_2FA_Secret_key.png)\n\n### 2FA secret key embedded inside a Quick Response (QR) code for a 3rd party authenticator app to scan:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_Quick_Response_QR_code.png)\n\n### 3rd party application generating 2FA code:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/3rd_party_authenticator_app.jpeg)\n\n### MFA View checks the 2FA code generated from a 3rd party authenticator app is correct before adding the secret key to the configuration file:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_2FA_check_code.png)\n\n### MFA View informing the user the 2FA secret key has been added to the configuration file:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_message_2FA_correct.png)\n\n### Example of configuration file (password is hashed and salted):\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_configuration_file_after_account_setup.png)\n\n### Systemd after MFA View was installed but before account setup:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_systemctl_before_adding_an_account.png)\n\n### Systemd after account setup is complete:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_systemctl_after_adding_an_account.png)\n\n### Examples of validation when creating an account:\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_invalid_input.png)\n\n![image](https://github.com/ellwould/mfa-view/blob/main/image/CLI_password_does_not_match.png)\n\n---\n\n\u003e[!NOTE]\n\u003eFor a list of abbreviations and there meanings used throughout this repository please refer to this [README](https://github.com/Ellwould/information_technology_and_telecommunication_abbreviations)\n\n\u003cbr\u003e\n\n\u003e [!IMPORTANT]\n\u003e All third-party product and/or company names and logos are trademarks™ or registered® trademarks and remain the property of their respective holders/owners. Unless specifically identified as such, use of third party trademarks does not imply any affiliation with or endorsement between Elliot Michael Keavney and the owners of those trademarks.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fellwould%2Fmfa-view","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fellwould%2Fmfa-view","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fellwould%2Fmfa-view/lists"}