Git Product home page Git Product logo

authplus-to-andotp-magiculator's Introduction

Archive notice: This repository is archived because andOTP, while being a great app, was similarly abandoned by its maintainers. This is the reality of unsupported single-contributor open source software; people have their own lives and families and eventually some side projects end up beign de-prioritised. You're welcome to still use andOTP and use this script to help you, but the script no longer needs any future updates.

My advice? Start enabling passkeys wherever you can. For everything else, switch to a paid or a free cross-platform password manager with OTP support.

Authenticator Plus to andOTP Magiculator

The Authenticator Plus app seems to have been abandoned by the developer. andOTP is a decent, open source, alternative.

This converts the Authenticator Plus backup database into andOTP-compatible backup database that can be directly important into andOTP.

Installation

With Docker

Install Docker.

Without Docker

The only dependency is pysqlcipher3. On my machine, I installed it like this:

$ sudo apt install -y libsqlcipher-dev
$ git clone https://github.com/rigglemania/pysqlcipher3
$ cd pysqlcipher3
$ python3 setup.py build
$ sudo python3 setup.py install

Usage

With Docker:

$ git clone https://github.com/adiov/authplus-to-andotp-magiculator.git
$ cd authplus-to-andotp-magiculator
$ docker run -v ${PWD}:/authplus-to-andotp -it adiov/authplus-to-andotp-magiculator --database authplus.db
Authenticator Plus master password:
andotp.json is now ready.

Alternatively, you can also build the image locally.

$ git clone https://github.com/adiov/authplus-to-andotp-magiculator.git
$ cd authplus-to-andotp-magiculator
$ docker build -t authplus-to-andotp-magiculator .
$ docker run -v ${PWD}:/authplus-to-andotp -it authplus-to-andotp-magiculator --database authplus.db

Without Docker:

$ ./authplus-to-andotp.py --database authplus.db
Authenticator Plus master password:
andotp.json is now ready.

Notes

  • This will decrypt the Authenticator Plus backup database and output the andOTP backup database in decrypted plain-text. Be careful how you handle that.
  • This attempts to preserve the entries' icons/thumbnails by using the Issuer field as thumbnail, which doesn't have a 100% success rate, but should work most of the time.
  • As far as I can tell, Authenticator Plus doesn't handle checksum algorithms other than SHA-1 or OTP digits other than 6. The output file will use those values by default. The only exception seems to be Battle.net TOTP with which Authenticator Plus uses 8 digits; this script attempts to preserve this info and pass it to andOTP.

authplus-to-andotp-magiculator's People

Contributors

adiov avatar xvybihal avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

authplus-to-andotp-magiculator's Issues

❤️ Thank you!!!

I just wanted to say a massive thank you for this tool! This saved me hours of time from what was looking like having to manually re-setup all my 2fa accounts. You should add a link of some kind to the readme where folks can buy you a coffee, because I certainly would!

Cheers! ☕

DatabaseError: file is not a database

Thanks for this project, I am glad I found it and appreciate the work!

Unfortunately, I am not able to read the database file freshly exported from Authenticator Plus (beta).

./authplus-to-andotp.py -d authplus.db -o auth.json
Authenticator Plus master password: 
Traceback (most recent call last):
  File "./authplus-to-andotp.py", line 29, in <module>
    cur.execute("SELECT * FROM accounts ORDER BY position ASC")
pysqlcipher3.dbapi2.DatabaseError: file is not a database

support Battle.net tokens

As far as I can tell, Authenticator Plus doesn't handle checksum algorithms other than SHA-1 or OTP digits other than 6. The output file will use those values by default.

Authenticator Plus supports Battle.net tokens, which are 8 digits long (but still 30s SHA-1). These can be identify by being "type 2 in the accounts table, and secret is hex encoded instead of base32.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.