scrypt in Python...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Wegen dem Blog post über Passwort länge und Hash verfahren... hab ich mich mal nach einer scrypt Implementierung in Python umgesehen...

Es gibt ein paar:

https://pypi.python.org/pypi?%3Aaction= ... mit=search

Die aktuellste scheint https://pypi.python.org/pypi/pylibscrypt/ zu sein. Aber ein wenig im Code umschauen auf https://github.com/jvarho/pylibscrypt und auf einige Sternchen-Imports gestoßen. Deswegen mal nachgefragt: https://github.com/jvarho/pylibscrypt/issues/14
Außerdem scheint es keine sauberen unittests zu geben...


https://pypi.python.org/pypi/pyscrypt/ bzw. https://github.com/ricmoo/pyscrypt ist eine pure Python Implementierung.
In der FAQ steht u.a.: It is written in pure Python. It is not meant to be fast, more of a reference solution.


Dann gibt es https://pypi.python.org/pypi/scrypt/ bzw. http://bitbucket.org/mhallin/py-scrypt das nutzt die C-Implementierung: http://www.tarsnap.com/scrypt.html
Aber das Python Projekt scheint eingeschlafen zu sein. Letzter nennenswerter commit is von 19.10.2012... Im Bug Tracker gibt es so einige offene Fehler...


Also ist pylibscrypt noch der beste Kandidat? Oder hab ich was übersehen?!?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Aktualität ist hier anders als bei anderen Projekten erstmal vollkommen irrelevant. Sobald der Algorithmus einmal implementiert ist, gibt es schliesslich nichts mehr wirklich was zu tun. Sieht man auch an den Issues die offen sind, die sich im wesentlich auf Warnungen beim kompilieren, Fehler auf obskuren Systemen o.ä. beziehen. Selbst bei den Segfaults bei pyscrypt, stellt sich ja die Frage inwieweit es überhaupt ein Problem von pyscrypt ist und nicht eins von der C library für die py-scrypt eigentlich nur ein Binding ist.

Implementationen in Python kannst du vollkommen vergessen, die sind einfach zu langsam als dass man die ernsthaft für irgendwas benutzen könnte. Du musst ohnehin davon ausgehen dass ein Angreifer mehr Performance hat als du, da kann man sich nicht erlauben mit sowas diesen Nachteil noch zu vergrößern.

Übrigens zum Thema Sternchen-Importe:
PEP 8 hat geschrieben: Wildcard imports ( from <module> import * ) should be avoided, as they make it unclear which names are present in the namespace, confusing both readers and many automated tools. There is one defensible use case for a wildcard import, which is to republish an internal interface as part of a public API (for example, overwriting a pure Python implementation of an interface with the definitions from an optional accelerator module and exactly which definitions will be overwritten isn't known in advance).
Ich würde sagen bei pylibscrypt haben wie diesen "defensible use case".
Antworten