Skip to content

FreeOTP+ Datenumzug nach Bitwarden Authenticator

Python3
1 1 230
  • Da ich viele Linux News lese, bin ich irgendwann auch mal über den Bitwarden Authenticator gestolpert.

    Kurze Erläuterung, ich nutze als Passwortspeicher einen selbst gehosteten Vaultwarden Server. Diesen kann man über die Bitwarden Apps erreichen.

    Da man heutzutage ja auch immer einen 2FA nutzen sollte, setze ich dafür schon lange auf die Android App FreeOTP+. Ich spiele aber schon länger mit dem Gedanken, diese App zu ersetzen.

    Innerhalb von FreeOTP+ ist man in der Lage die Daten in zwei Formaten zu exportieren.

    • JSON
    • TXT

    Ich habe mich für das TXT Format entschieden. Ein Beispiel.

    otpauth://totp/Radforum%20D%C3%BCsseldorf%3Afrankm%40radforum-duesseldorf.de?secret=<SECRET>&algorithm=SHA1&digits=6&period=30
    

    Das müssen wir jetzt in ein vernünftiges Format umwandeln, was wir mit Bitwarden Authenticator importieren können. Beispiel

    {
      "encrypted": false,
      "items": [
        {
          "favorite": false,
          "id": "52A4DFB0-F19E-4C9D-82A1-BBEE95BBEF81",
          "login": {
            "totp": "otpauth://totp/Amazon:alice@bitwarden.com?secret=IIO5SCP3766LMSAB5HJCQPNDCCNAZ532&issuer=Amazon&algorithm=SHA1&digits=6&period=30",
            "username": "alice@bitwarden.com"
          },
          "name": "Amazon",
          "type": 1
        },
    

    Doku Bitwarden -> https://bitwarden.com/de-de/help/authenticator-import-export/

    Damit haben wir dann ja die Grundlagen, um mal eben mit Python und der freundlichen Unterstützung von ChatGPT einen Converter zu bauen.

    Ein paar Tests und so weiter und nach ca. 2 Stunden war alles fertig.

    Die CLI Anwendung benutzt man dann wie folgt.

    python converter.py -i import.txt -o output.json
    

    Das File output.json dann innerhalb der Bitwarden Authenticator App importieren - fertig. Leider werden die Favicons beim Import nicht erstellt. Ich habe bis jetzt keinen Fehler in meinen importierten Daten festgestellt, hat alles so weit geklappt.

    Schnell noch ein Gitlab Repo dazu erstellt, damit andere nicht wieder von vorne anfangen müssen 🙂

  • Flask Projekt auf einem anderen Rechner installieren

    Python3 python flask linux
    1
    0 Stimmen
    1 Beiträge
    192 Aufrufe
    Niemand hat geantwortet
  • PyWebIO vs. Flask

    Python3 pywebio flask linux python
    2
    0 Stimmen
    2 Beiträge
    266 Aufrufe
    FrankMF
    Mist, jetzt habe ich auch noch Streamlit gefunden. Jetzt geht mir langsam die Zeit aus...
  • Flask - Erste Schritte

    Allgemeine Diskussionen flask python ki-generiert
    3
    1
    0 Stimmen
    3 Beiträge
    304 Aufrufe
    FrankMF
    Mein vorhandenes Projekt war doch etwas größer als ich gedacht hatte. Also musste ich mehr Zeit aufwenden um es nach Flask zu transferieren. Nach einiger Zeit hatte sich eine ganz ansehnliche Zahl von Dateien angesammelt und es kam wie es kommen musste, ich wusste manchmal nicht mehr, welches File ich anfassen musste. Chaos kam auf So fing ich an ein wenig zu recherchieren und kam auf die Funktion Blueprint von Flask. Mich ein wenig eingelesen, ChatGPT mal eben um ein Beispiel gebeten und dann angefangen die Applikation entsprechend umzubauen. Auch das hat Zeit gekostet. Aber, jetzt habe ich ein aufgeräumtes Projekt, was es mir wesentlich einfacher macht, daran zu arbeiten. [image: 1697954135081-5226e90d-aa20-4b20-93af-e50f8f841880-grafik.png] Wenn ihr also mal vorhabt, so was zu coden, halte ich es für sinnvoll das Projekt von Anfang an zu strukturieren. Und zum Schluss noch ein Screenshot zum Stand des Projektes. [image: 1697954267467-a7981ffc-0f93-41f4-93e2-c914fdba5e43-grafik.png] Und weiter geht es, ist nämlich noch nicht fertig
  • NiceGUI

    Linux nicegui linux python
    2
    0 Stimmen
    2 Beiträge
    426 Aufrufe
    FrankMF
    Ich habe mir das jetzt einige Tage gegeben und habe mich dagegen entschieden. Werde weiterhin PyWebIO benutzen. Hauptgrund ist die wesentlich bessere Dokumentation -> https://pywebio.readthedocs.io/en/latest/index.html Da kann ich mir auch mit meinem Python Kenntnisstand die Informationen holen, die ich brauche um es einzusetzen.
  • Python - Dict -> JSON und umgekehrt

    Python3 python
    1
    0 Stimmen
    1 Beiträge
    345 Aufrufe
    Niemand hat geantwortet
  • PyWebIO - put_buttons

    PyWebIO pywebio python
    2
    1
    0 Stimmen
    2 Beiträge
    234 Aufrufe
    FrankMF
    Und noch eine kleine Übung, wie man den Buttton abhängig von einem Value enabled/disabled # we build header and tdata for table tab_mount = [] for count, value in enumerate(backups): if count == 0: tab_mount.append(['No.', 'Backup name of the restic data backup', 'Actions']) if backups[value].init == "0": tab_mount.append([count + 1, backups[count].name, put_buttons([ dict(label='Mount', value='Mount', color='primary', disabled=True), dict(label='UMount', value='UMount', color='primary', disabled=True), dict(label='Restore', value='Restore', color='primary', disabled=True), ] , onclick=partial(actions, count + 1)) ]) else: tab_mount.append([count + 1, backups[count].name, put_buttons([ dict(label='Mount', value='Mount', color='primary'), dict(label='UMount', value='UMount', color='primary'), dict(label='Restore', value='Restore', color='primary'), ], onclick=partial(actions, count + 1)) ])
  • ResticUI with PyWebIO - Repo

    PyWebIO pywebio python restic-ui
    1
    0 Stimmen
    1 Beiträge
    125 Aufrufe
    Niemand hat geantwortet
  • Qt 5 Designer

    Python3 python
    1
    4
    0 Stimmen
    1 Beiträge
    145 Aufrufe
    Niemand hat geantwortet