Seite 1 von 1

Hashstring()

Verfasst: 17. Mai 2016, 15:06
von satmax
Ich verwende unter Xbase++ Char2Hash() um passwörter zu verschlüsseln. Unter windev gibt es dafür Hashstring()

Char2Hash("password") == 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8

HashString(HA_SHA_160,"password") == [ªaäɹ??‚%lø3~æØ

sieht ein wenig anders aus, habs über die Zwischenablage kopiert. Auf jeden Fall ganz anders wie erwartet.

Re: Hashstring()

Verfasst: 18. Mai 2016, 04:48
von satmax
Hier eine mögliche Lösung, für mich passt es:

Code: Alles auswählen

// Summary: convert a string in a Hex-String
// Compatible with Xbase++ and VC++
// Syntax:
//[ <Result> = ] Char2Hash (<sPassword> is string)
//
// Parameters:
//	sPassword (ANSI string):<specify the role of sPassword>
// Return Value:
// 	ANSI string: HASH as Hexstring 
//
// For instance:
// Indicate an example.
// cHex = Char2Hash("password")
// cHex is now:  5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8
// 
PROCEDURE Char2Hash(sPassword is string)
i is int
cHex is string = ""
cHash is ANSI string = HashString(HA_SHA_160,sPassword)
nLen is int = Length(cHash) 

FOR i = 1 TO nLen
	cHex += NumToString(Asc(cHash[[i]]),"02X") 
END

RESULT cHex

Re: Hashstring()

Verfasst: 18. Mai 2016, 06:42
von Herbert
Ich mache das Ganze mit Crypt resp. Uncrypt.

Code: Alles auswählen

Mitarbeiter.Passwort = Crypt(UnicodeToAnsi(EDT_Passwort), UnicodeToAnsi("meinLoesungswort"))

Re: Hashstring()

Verfasst: 18. Mai 2016, 15:24
von satmax
Geht nicht, muss auf eine gemeinsame DB zugreifen. Und da liegt das PW nur so vor.