SHA-1 verschlüsselung mit CSHA1



  • Hui ich durfte auf Visual C++ 7 wechseln. 😃

    Hier stoße ich allerdings auf ein Problem. Über einen Webservice soll ich mich auf einem Server anmelden. Dass Passwort auf dem Server ist SHA-1 verschlüsselt.

    Sende ich nun das Passwort unverschlüsselt an den Server, so funktioniert alles & ich bekomme zurück, dass das Passwort falsch ist.

    Verschlüssle ich es jedoch zuvor mit CSHA1, so bekomme ich die Meldung dass nicht genügend Speicher vorhanden ist.

    Mein Code in der Funktion wo dass Passwort verschlüsselt wird etc. :

    CString username;
    	CString passwd;
    	GetDlgItem(IDC_NAME)->GetWindowText(username);	
    	GetDlgItem(IDC_PASSWORT)->GetWindowText(passwd);  
    
    	// Passwort verschlüsseln
    	CSHA1 sha;
    	sha.Update((unsigned char*)(LPCTSTR)passwd, passwd.GetLength());
    	sha.Final();
    
    	TCHAR* res = new TCHAR;
    
    	try
    	{
    		sha.ReportHash(res, CSHA1::REPORT_HEX_SHORT);
    	}
    	catch(CException *e)
    	{
    		e->ReportError();
    		e->Delete();
    	}
    	sha.Reset(); // Bis hierhin funktioniert alles
    
             passwd = res;
    
    	login login(username, passwd);    // Hier wirft er die Exception dass nicht genug Speicher vorhanden ist - In die Funktion geht er nicht
    	MessageBox(login.loggo(), "Meldung"); // Testausgabe um zu sehen was vom Server kommt
    
    	CAnmeldungDlg dlg;
    	dlg.DestroyWindow();
    

    Ich hoffe ihr könnt mir sagen wo ich meinen Denkfehler habe.

    // Edit
    Gut, der Fehler lag in der inizialisierung von TCHAR res.

    Richtig muss es so aussehen:

    TCHAR res[größe];
    

    Damit nachfolgende die dass Problem haben auch wissen, woran es liegen könnte.


Anmelden zum Antworten