BlitzMax zu PHP
Übersicht

![]() |
Suco-XBetreff: BlitzMax zu PHP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi.
Folgendes: Ich benötige eine kleine Funktion zum verschlüsseln von Strings, die man mit PHP und mit BlitzMax nutzen kann. Da ich für BlitzMax keine Gegenfunktion zur PHP Crypt Funktion gefunden habe, habe ich es umgekehrt versucht. Im Blitzbasic.com Archiv bin ich fündig geworden und habe eine kleine RC4 Funktion gefunden, die ich nach PHP umschreiben wollte. Aber beide Funktionen bringen unterschiedliche Ergebnisse, obwohl ich sie 1:1 übertragen habe. Ich denke das liegt an PHP, irgendein Detail das ich übersehen habe. Vielleicht findet ja einer von euch das Problem. Hier die Codes: PHP Code: [AUSKLAPPEN] <?php Function RC4($inp, $key) { $S = Array(); $K = Array(); for($i=0;$i<256;$i++){ $S[$i] = $i; } $j = 0; for($i=0;$i<256;$i++){ if($j>strlen($key)){ $j = 0; } $K[$i] = ord($key[$j]); $j++; } $j = 0; for($i=0;$i<256;$i++){ $j = ($j+$S[$i]+$K[$i]) & 255; $temp = $S[$i]; $S[$i] = $S[$j]; $S[$j] = $temp; } $i = 0; $j = 0; $x = 0; for($x=0;$x<strlen($inp);$x++){ $i = ($i+1) & 255; $j = ($j+$S[$i]) & 255; $temp = $S[$i]; $S[$i] = $S[$j]; $S[$j] = $temp; $t = ($S[$i] + ($S[$j] & 255) ) & 255; $y = $S[$t]; $output = $output.chr(ord($inp[$x]) ^ $y); } return $output; } $message = "testnachrichttesttest"; $key = "testpass"; $er = RC4($message, $key); echo $er."<br>"; for($i=0;$i<strlen($er);$i++){ echo ord($er[$i])."<br>"; } echo RC4($er, $key); ?> BlitzMax Code: [AUSKLAPPEN] Strict Function RC4$(inp$, key$) Local S[256] Local K[256] Local i,j,t,temp,y Local Output$ For i = 0 Until 256 S[i] = i Next j = 0 For i = 0 Until 256 If j > Key.length j = 0 EndIf K[i] = key[j] j:+ 1 Next j = 0 For i = 0 Until 256 j = ( j + S[i] + K[i] ) & 255 temp = S[i] S[i] = S[j] S[j] = temp Next i = 0 j = 0 For Local x:Int = 0 Until Inp.length i = (i + 1) & 255 j = (j + S[i]) & 255 temp = S[i] S[i] = S[j] S[j] = temp t = ( S[i] + ( S[j] & 255 ) ) & 255 y = S[t] Output:+ Chr(inp[x] ~ Y) Next Return Output$ EndFunction Local message:String = "testnachrichttesttest" Local key:String = "testpass" Local er:String er = RC4(Message, Key) Print er For Local i:Int = 0 Until er.length Print er[i] Next Print RC4(er, Key) Entschlüsseln tut er sie in beiden Versionen, aber der verschlüsselte String ist unterschiedlich. Bin ratlos, danke für jede Hilfe. Mfg |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Justus |
![]() Antworten mit Zitat ![]() |
---|---|---|
Polyalphabetische Chiffrierung für BMAX & PHP
Vielleicht erspart es dir ja etwas Arbeit... |
||
![]() |
Suco-XBetreff: ......... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja, mir wäre es trotzdem lieber, wenn ich wüßte, was an diesen scheinbar identischen Codes so unterschiedlich ist. Klammer falsch gesetzt oder sonstiges. Ist ja auch für kommende Codekonvertierungen von Nutzen. Danke jedenfalls.
Mfg |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
FOODy |
![]() Antworten mit Zitat ![]() |
---|---|---|
Scheinbar liegt es an den Stellen:
BlitzMax: Code: [AUSKLAPPEN] For i = 0 Until 256
If j > Key.length j = 0 EndIf K[i] = key[j] j:+ 1 Next PHP: Code: [AUSKLAPPEN] for($i=0;$i<256;$i++){
if($j>strlen($key)){ $j = 0; } $K[$i] = ord($key[$j]); $j++; } Da müsste bei beiden >= stehen und nicht >. (Da sonst über den String hinaus der wert gezogen wird) Funzt jedenfalls bei mir jetzt bei beiden gleich. Gruß, FOODy |
||
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB |
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi
Hast recht, danke. Jetzt funktioniert es. Ich war mir eigentlich sicher, dass zumindestens BlitzMax bei solchen Fehlern etwas sagen würde. Mfg |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe gerade mal versuch den Code nach Blitzbasic umzuschreiben.
Aber irgendwas scheine ich falsch zu machen: Code: [AUSKLAPPEN] Local message$ = "testnachrichttesttest"
Local key$ = "testpass" er$ = RC4(Message, Key) Print er Print RC4(er, Key) Function RC4$(inp$, key$) Local S$[256] Local K$[256] Local i,j,t,temp$,y Local Output$ For i = 0 To 256 S[i] = i Next j = 0 For i = 0 To 256 If j => Len(Key) j = 0 EndIf K[i] = Mid$(key$,j, 1) j = J + 1 Next j = 0 For i = 0 To 256 j = ( j + S[i] + K[i] ) And 255 temp = S[i] S[i] = S[j] S[j] = temp Next i = 0 j = 0 For x = 0 To Len(inp$) i = (i + 1) And 255 j = (j + S[i]) And 255 temp = S[i] S[i] = S[j] S[j] = temp t = ( S[i] + ( S[j] And 255 ) ) And 255 y = S[t] Output = Output + Chr(mid$(inp,x,1) Xor Y) Next Return Output$ End Function |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Suco-XBetreff: ..... |
![]() Antworten mit Zitat ![]() |
---|---|---|
Benutz lieber den original Code als Vorlage, der kommt dem BB Code näher:
http://www.blitzbasic.com/code...?code=1711 Mfg |
||
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
ah ich habs jetzt.
Danke ![]() |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group