Deutsch
Forum

Fehler bei Umwandlung großer Zahlen in Strings

 
- Seite 1 -



Sven
Bader
Hallo!

Ich bin mir nicht sicher, wie ich das Thema nennen soll, auf das ich da gestoßen bin. Möglicherweise rechnet Profan hier richtig weiter aber bei den Debugausgaben bekomme ich falsche Zahlen. Bis XProfan 11 sind die Ergebnisse wie erwartet, danach nicht mehr.

Das verschieben der Bits scheint ok, da ein zurückumwandeln des falschen Strings wieder die richtige Zahl hervorzaubert (jeweils 3. Zahl).

Eigentlich sind wir doch hier trotz der Größe der Zahlen noch tief im 32 Bit Bereich. Die korrekte Zahl ist -284.887.680 Also -284 Mio, 32 Bit geht bis +/- 2 Mrd.

Hier das Listing
declare aa&,bb&,xx$,xx&
aa& = 1272842731
bb& = 7
xx$ = str$(aa& << bb&)
xx& = val(xx$)
print (aa& << bb&)
print xx$
print xx&
print val(xx$)
print val(str$(aa& << bb&))
waitkey
end












3 kB
Hochgeladen: vor 7 Tagen
Ladeanzahl0
Herunterladen
3 kB
Hochgeladen: vor 7 Tagen
Ladeanzahl0
Herunterladen
2 kB
Hochgeladen: vor 7 Tagen
Ladeanzahl0
Herunterladen
3 kB
Hochgeladen: vor 7 Tagen
Ladeanzahl0
Herunterladen
3 kB
Hochgeladen: vor 7 Tagen
Ladeanzahl0
Herunterladen
3 kB
Hochgeladen: vor 7 Tagen
Ladeanzahl0
Herunterladen
 
vor 7 Tagen  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


Paul
Glatz
Hallo,

1272842731 ist in binärer Darstellung 0100 1011 1101 1110 0000 1001 1110 1011.
Nach dem Shift um 7 Bits nach links ist es ergibt das 0010 0101 1110 1111 0000 0100 1111 0101 1000 0000, in Dezimal 162923869568.

Das Ergebnis hat also mehr als 32 Bit. Wenn man diese Zahl nun in eine 32 Bit Variable zwingt werden nur die untersten 32 Bit gespeichert (1110 1111 0000 0100 1111 0101 1000 0000) was dann zur Ausgabe von -284887680 führt.

Also rechnet Profan richtig, aber halt mit 64 Bit, da du das Ergebnis der Berechnung nicht explizit in eine 32 Bit Variable speicherst.
 
vor 7 Tagen  
 




Sven
Bader
Hallo Paul!

Das ist wohl der Preis dafür, dass XProfan sich auch fehlertolerant zeigt, wenn man es gebrauchen kann

Konkret möchte ich eine MD5 Funktion umsetzen, diese beinhalten einige spezielle Kniffe. Ich werde hier einfach jeder Funktion vor dem return den Wert noch mal in eine Longint also Postfix-& Variable speichern.

Viele Grüße
Sven
 
vor 7 Tagen  
 




Sven
Bader
Es hat geklappt, hier die fertige md5.dll, Tester erwünscht  [...] 
 
vor 7 Tagen  
 




H.Brill
Zu was braucht man das eigentlich ?
Ist ja nicht mehr rückwandelbar. Da fällt mir
eigentlich nur eine digitale Unterschrift ein.
Der Empfänger bekommt z.B. den MD5-Schlüssel
und weiß, daß dieser zum Sender gehört :

Hans Mustermann = 7f5ecf8d045f84bc104687bf0fb826a8


Damit kann der Empfänger dann den Schlüssel zum Sender zuordnen.
Aber so eine Datenbank auf Empfängerseite wäre ja auch wieder
leicht hackbar.

Hat da jemand noch weitere Verwendungsmöglichkeiten ?
 
Benutze XPROFAN X3 + FREEPROFAN
vor 6 Tagen  
 




Sven
Bader
1. Eine häufige Verwendung sind Passwörter, die müssen nämlich gar mehr entschlüsselt werden. Bei einem Login wird einfach direkt der md5-Hash des Passworts mit der Datenbank abgeglichen. Es empfiehlt sich, bei der Generierung an jedes Passwort noch eine Zeichenkette anzuhängen, einen so genannten Salt. Andernfalls können häufige Passwörter leicht über md5-Tabellem zugeordnet werden, da der Hash von "password" oder "12345" geläufig ist, mit Salt sieht es da anders aus md5("12345---#-,SaLt+---")

2. Schlüssel/Indizes für ein assoziatives Array. Damit kann ich sicher sein, für jeden neuen Wert auch einen einzigartigen Schlüssel zu erhalten. Zudem kann ich bei einem neuen Datensatz rein über die Schlüssel ermitteln, ob der Datensatz schon existiert, ganz ohne den Inhalt zu vergleichen.

3. Validierung von Downloads. Anbieter von Downloads geben oft den md5 der Datei mit an, sodass ich nach dem Download prüfen kann, ob die Datei zu 100% stimmt und so Downloadfehler oder untergeschobene Viren auschließen kann. Für Dateien ist meine Funktion aber noch nicht geeignet, wegen Performance und auch weil man eine binäre Datei nicht einfach ins Strings packen kann.

4. Immer wieder für eindeutige Kennungen, ohnei die zu grundliegenden Daten preiszugeben.

Und allerhand mehr was in ähnliche Richtungen geht. Es geht dabei längst nicht immer um Schutz vor Hacks, hierzu braucht es mehr als den reinen md5, dieser hilft aber schonmal.
 
vor 6 Tagen  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

98 Betrachtungen

Unbenanntvor 0 min.
Sven BaderVorgestern (16:43)
H.BrillVorgestern (09:37)
R.Schneider vor 5 Tagen
E.T. vor 5 Tagen
Mehr...

Themeninformationen

Dieses Thema hat 3 Teilnehmer:

Sven Bader (4x)
H.Brill (1x)
Paul Glatz (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie