# google-authenticator-exporter **Repository Path**: abuoo/google.authenticator.exporter ## Basic Information - **Project Name**: google-authenticator-exporter - **Description**: 来自 github.com 的仓库 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-01-24 - **Last Updated**: 2024-01-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## 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. ![Example](example.png) ## Guide **Prerequisites:** * Your phone with Google Authenticator * A camera * [Nodejs installed](https://nodejs.org/en/download/) * A [QR scanner](https://play.google.com/store/apps/details?id=com.google.zxing.client.android) **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)