https://github.com/krissrex/google-authenticator-exporter
Get the TOTP secrets exported by Google Authenticator
https://github.com/krissrex/google-authenticator-exporter
2fa decode export mfa migrate nodejs secret-keys totp
Last synced: 15 days ago
JSON representation
Get the TOTP secrets exported by Google Authenticator
- Host: GitHub
- URL: https://github.com/krissrex/google-authenticator-exporter
- Owner: krissrex
- License: mit
- Created: 2020-05-22T14:46:59.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-09-24T01:48:55.000Z (8 months ago)
- Last Synced: 2024-11-11T21:37:47.808Z (6 months ago)
- Topics: 2fa, decode, export, mfa, migrate, nodejs, secret-keys, totp
- Language: JavaScript
- Size: 200 KB
- Stars: 428
- Watchers: 5
- Forks: 59
- Open Issues: 4
-
Metadata Files:
- Readme: readme.md
- License: LICENSE
Awesome Lists containing this project
README
# Google Authenticator secret extractor
> **Note:** This project and I are in no way affiliated with Google.
This lets you decode the URI generated by Google Authenticator.

## Guide
**Prerequisites:**
* Your phone with Google Authenticator
* A camera
* [Nodejs installed](https://nodejs.org/en/download/)
* A QR scanner
* Android: [ZXing](https://play.google.com/store/apps/details?id=com.google.zxing.client.android)
* Mac/Win/Linux: [ZBar](https://github.com/mchehab/zbar) (See [issue 22](https://github.com/krissrex/google-authenticator-exporter/issues/22) for usage)**Getting the secret keys:**
1. Open the Google Authenticator app.
2. Click Settings (three dots, top right), and *Transfer accounts*.
3. Select *Export accounts*.
4. Authenticate, if prompted.
5. Select the accounts you want to export (default is *all*).
6. Click *Next*, and capture a picture of the QR code.
* **Note:** Screenshots are disabled by the app.
Use your laptop webcam, a digital camera or another phone.
7. Click *Next*, and repeat step 6 for all QR codes shown (if you have many accounts).
8. Decode the QR codes to obtain the `otpauth-migration://offline?data=...` URI.
9. Clone/Download this repository.
10. Run `npm install`.
11. For generating json run`npm run start`, for generating qr-codes run `npm run start:qrcode`.
12. Enter the URI when prompted
13. If you chose json and you want to save the output, enter `y` and `accounts.json`## Use a docker image
**Prerequisites:**
Build the docker image locally:
```sh
docker build . --tag google-authenticator-exporter:0.0.1
```**Decode an obtained QR code URI:**
1. Run the docker container locally:
```sh
docker run -it --rm google-authenticator-exporter:0.0.1
```
2. Enter the URI when prompted
3. Since you haven't mounted a volume, you cannot save the output using the above command, so leave the next questions empty (hit Enter).
4. The output to json will be printed out to terminal.## References
I found the protobuff code in https://github.com/beemdevelopment/Aegis/pull/406/files.
The opensource Google Authenticator does not seem to have this yet (*5th May 2020*): https://github.com/google/google-authenticator-android/issues/118.A QR scanner app for Android that works is https://play.google.com/store/apps/details?id=com.google.zxing.client.android.
The Base32 format is specified in https://tools.ietf.org/html/rfc3548. There are multiple ways to implement Base32.
License: MIT,
**BUT** this uses GNU GPL 3 code as a dependency (https://github.com/alexbakker/Aegis/blob/56bde0e19b51568a7050f6cb56085a1bb38c5a9e/app/src/main/proto/google_auth.proto) (https://github.com/alexbakker/Aegis/blob/56bde0e19b51568a7050f6cb56085a1bb38c5a9e/LICENSE)