# Transaktionsnummer (Tan) generieren?



## Neral (18. Feb 2005)

Hi,

ich brauche ein Algorithmus, welcher mir eine Transaktinosnummernliste raus gibt.
So zu sagen ein Einmalpasswort. Habe schon bei Wikipedia etwas gesucht:
http://de.wikipedia.org/wiki/Einmalpasswort

Hat jemand vieleicht so was schon gemacht?
Oder kann mir jemand Ansätze geben?


Gruß Neral


----------



## kopfsalat (18. Feb 2005)

??
Du erstellst einfach eine Liste von zufälligen Zahlen.
Einfachster 'Algorithmus' (Pseudocode):

```
For i=0 to 20
  Ausgabe Random()
Next
```
Diese speicherst Du, und händigst dem 'Anwender' eine Kopie aus.

Dieser teilt Dir dann für eine Transaktion eine beliebige Nummer aus der Liste mit, und wenn diese Nummer OK war, dann markierst Du bei Dir, dass diese TAN nicht mehr gültig sein soll.


----------



## Neral (18. Feb 2005)

hi ja klar also ich weiß schon wie man zufaellige zahlen erstellt und sie in einer db abspeichert und so , nur sicherheit ist sehr wichtig und es soll ein algorithmus nach einer einwegfunktion erstellt werden 
(http://de.wikipedia.org/wiki/Einwegfunktion)

also, welche schwer ist wieder "umzurechnen"


----------



## niemand (18. Feb 2005)

Du suchst nach md5?

cu


----------



## mic_checker (18. Feb 2005)

Neral hat gesagt.:
			
		

> hi ja klar also ich weiß schon wie man zufaellige zahlen erstellt und sie in einer db abspeichert und so , nur sicherheit ist sehr wichtig und es soll ein algorithmus nach einer einwegfunktion erstellt werden
> (http://de.wikipedia.org/wiki/Einwegfunktion)
> 
> also, welche schwer ist wieder "umzurechnen"



1) Wenn du einen Zufallszahlengenerator verwenden willst , rat ich dir von Random() ab, verwende wenn z.B. SecureRandom()

2) Schau dir mal MessageDigests an.
http://java.sun.com/j2se/1.5.0/docs/guide/security/CryptoSpec.html


----------



## Bleiglanz (21. Feb 2005)

nimm 

md5(<irgendwas>)

wobei du dir <irgendwas> aus IP adressen, "magic Strings", SecureRandoms u.a. zusammenbastelst

google auch mal nach "Java GUID" oder sowas


----------

