Liebe Gäste des Forums
Danke, dass ihr euch hier auf dem inoffiziellen Windev-Forum umschaut. Hier werden Tipps und Hinweise zu der von PC-Soft angebotenen Software Windev besprochen.
Windev ist eine leistungsstarke, sehr umfangreiche Entwicklersoftware für Webseiten, Handys und Rechner verschiedener Betriebssysteme. Mehr unter http://www.windev.com

Hashstring()

Wie ich gerade feststellen musste, reagieren Upper() und Lower() anders als erwartet (aus xBase Sicht) ... hierfür gibt es eine andere Funktion. Hier sollen solche allgemeinen Themen behandelt werden.
Antworten
satmax
Member
Beiträge: 210
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Hashstring()

Beitrag von satmax » 17. Mai 2016, 15:06

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.

satmax
Member
Beiträge: 210
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Hashstring()

Beitrag von satmax » 18. Mai 2016, 04:48

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

Herbert
Site Admin
Beiträge: 395
Registriert: 23. Februar 2010, 08:06
Wohnort: Langenthal, Schweiz
Kontaktdaten:

Re: Hashstring()

Beitrag von Herbert » 18. Mai 2016, 06:42

Ich mache das Ganze mit Crypt resp. Uncrypt.

Code: Alles auswählen

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

satmax
Member
Beiträge: 210
Registriert: 24. September 2015, 10:05
Wohnort: Biberbach, Austria
Kontaktdaten:

Re: Hashstring()

Beitrag von satmax » 18. Mai 2016, 15:24

Geht nicht, muss auf eine gemeinsame DB zugreifen. Und da liegt das PW nur so vor.

Antworten