# SSHA Hashing



## Erlo (12. Nov 2009)

Hallo,

bin gerade dran mit JAVA/JNDI einen Logindialog zu einem OPENLDAP-Sever zu erstellen.
Die Passwörter im LDAP sollen als SSHA hash gespeichert. Ich suche jetzt eine möglichkeit die mir aus Strings einen SSHA Hash erstellt damit ich diesen für den Login verwenden kann. MessageDigest kennt leider den SSHA-Algorithmus nicht.


Erlo


----------



## Gast2 (12. Nov 2009)

Erlo hat gesagt.:


> MessageDigest kennt leider den SSHA-Algorithmus nicht.



 ... SHA sollte er aber kennen ... und SSH ist Telnet für ganz Paranoide wie mich ... Du hast irgendwie beides gemischt 

oder so, mogel


----------



## Erlo (13. Nov 2009)

laut inet ist ssha ein sha + salt. Als Beispiel hier ein von Openldap gehashtes Passwort
{SSHA}AfBntJxBBqCvH2rbYQ2UDDuE+JiS6lzI.
Sowas will ich halt mittels java erstellen.


----------



## Gast2 (13. Nov 2009)

Erlo hat gesagt.:


> laut inet ist ssha ein sha + salt.


 ... kann man da nicht einfach SHA mit Salt oder so schreiben ... langsam bekomme ich eine Kriese mit den Abkürzungen (allgemeines Gemecker - galt nicht für Dich)



> Als Beispiel hier ein von Openldap gehashtes Passwort
> {SSHA}AfBntJxBBqCvH2rbYQ2UDDuE+JiS6lzI.
> Sowas will ich halt mittels java erstellen.



Dein Algodingens ist immer noch SHA ... Du musst Dich mal bei OpenLDAP schlau machen wo und welches Salt an das Passwort mit rankommt ... aus dem entstanden Passwort machst Du dann SHA-Hash


```
Salt = "hallo"
Passwort = "welt"
shahash ( "hallowelt" oder "welthallo" oder $whatever )
```


----------



## Guest2 (13. Nov 2009)

Hashing Java - OWASP

Gruß,
Fancy


----------



## Erlo (13. Nov 2009)

mogel hat gesagt.:


> Dein Algodingens ist immer noch SHA ... Du musst Dich mal bei OpenLDAP schlau machen wo und welches Salt an das Passwort mit rankommt ... aus dem entstanden Passwort machst Du dann SHA-Hash



So wie es aussieht muß ich also den Algorithmus selber implementieren. Ich dachte halt das schon mehr JAVA-Programmierer auf diese Problem gestoßen sind und es dafür eine fertige lösung gibt.DA JNDI und OPENLDAP ja nicht gerade unbekannt ist.

Jedenfalls danke für eure Mühe!


Erlo

UPDATE: Habe jetzt eine Klasse gefunden die mir weitergeholfen hat. Die Klasse setzte ich mal als Anhang hier rein  falls andere das gleiche Problem haben wie ich. Wegen der vollständigkeit, die Klasse ist ein Teil des Opensourceprojektes Cookie Revolver Security Framework | Get Cookie Revolver Security Framework at SourceForge.net


----------



## Wookie81 (14. Nov 2009)

Meine zwei Cent dazu:

1. mogel hat doch geschrieben, dass SSHA damit kein eigener Algorithmus ist sondern nur SHA (nach der Info hier übrigens SHA-1) mit einem Salt. Um also den Hash String zu bekommen musst du den gleichen Salt + dein Passwort einfach mit - dem ja vorhandenen - SHA-1 hashen.

2. Ist es doch beim einloggen im LDAP soweit ich weiß so, dass der Server dein Passwort hashst und vergleicht? Sonst müsstest du ja zum einen immer den genauen Algorithmus und zum anderen den Salt kennen! Könnte mich jetzt auch irre, aber auf Wunsch würde ich hier nochmal nachschauen ...

Wk


----------



## Erlo (16. Nov 2009)

Wookie81 hat gesagt.:


> 1. mogel hat doch geschrieben, dass SSHA damit kein eigener Algorithmus ist sondern nur SHA (nach der Info hier übrigens SHA-1) mit einem Salt. Um also den Hash String zu bekommen musst du den gleichen Salt + dein Passwort einfach mit - dem ja vorhandenen - SHA-1 hashen.



Den SSHA als Algorithmus zu bezeichnen war von mir unglücklich gewählt gebe ich zu. Das SSHA  nur der SHA-1+ Salt ist hatte ich ja aber auch schon gesagt  (Wollte halt nur schnell eine Methode haben die mir einen String mittels SSHA hasht ohne mich groß mit dem Hashing befassen zu müssen.) 



Wookie81 hat gesagt.:


> 2. Ist es doch beim einloggen im LDAP soweit ich weiß so, dass der Server dein Passwort hashst und vergleicht? Sonst müsstest du ja zum einen immer den genauen Algorithmus und zum anderen den Salt kennen! Könnte mich jetzt auch irre, aber auf Wunsch würde ich hier nochmal nachschauen ...



Ich brauche den Hash auch nicht für die Authentisierung am LDAP sondern beim erstellen neuer Passwörter. Der LDAP vergleicht zwar die Klartexteingabe mit dem gehashten hinterlegten Passwort, aber neue Passwörter legt er nicht gehasht im Verzeichnis ab...


----------

