Italia
Foro

Fehler bei Umwandlung großer Zahlen in Strings

 
- Page 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 Dimensione 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:11.09.2021
Downloadcounter80
Download
3 kB
Hochgeladen:11.09.2021
Downloadcounter81
Download
2 kB
Hochgeladen:11.09.2021
Downloadcounter70
Download
3 kB
Hochgeladen:11.09.2021
Downloadcounter71
Download
3 kB
Hochgeladen:11.09.2021
Downloadcounter73
Download
3 kB
Hochgeladen:11.09.2021
Downloadcounter64
Download
 
11.09.2021  
 



« Dieser Beitrag wurde als Lösung gekennzeichnet. »


Paul
Glatz
Ciao,

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 un 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 un 32 Bit Variable speicherst.
 
11.09.2021  
 




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 il valore noch mal in un Longint also Postfix-& Variable speichern.

Viele Grüße
Sven
 
11.09.2021  
 




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




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
Wir sind die XProfaner.
Sie werden von uns assimiliert.
Widerstand ist zwecklos!
Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.

Was die Borg können, können wir schon lange.
12.09.2021  
 




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 Password noch eine Zeichenkette anzuhängen, einen so genannten Salt. Andernfalls können häufige Passwörter leicht circa 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 per ein assoziatives Array. Damit kann ich sicher sein, per jeden neuen Wert auch einen einzigartigen Schlüssel zu erhalten. Zudem kann ich bei einem neuen Datensatz rein circa 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 File mit an, sodass ich nach dem Download prüfen kann, ob die File zu 100% stimmt und so Downloadfehler oder untergeschobene Viren auschließen kann. Für File ist meine Funktion aber noch nicht geeignet, wegen Performance und auch weil man eine binäre File nicht einfach ins Strings packen kann.

4. Immer wieder per 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.
 
12.09.2021  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

3.373 Views

Untitledvor 0 min.
rafl19.08.2024
Sven Bader27.02.2023
Ernst29.05.2022
funkheld08.01.2022
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

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


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


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