WebWork Magazin - Design, Gestaltung, Online Medien, html

Webhosting Provider Domain

Home | Registrieren | Einloggen | Suchen | Aktuelles | GSL-Webservice | Suleitec Webhosting
Reparatur-Forum | Elektro forum | Ersatzteilshop Haushalt und Elektronik



Im Homepage und Webhosting-Forum --- CRC 16

Scripte und Programme für PHP, MYSQL. Diskussionen zur Programmierung im Web. FRagen zu CMS, Blogsoftware, Shops, Newsletter und vielen weiteren Scripten.

Forum » PHP & MySQL » CRC 16 - 22 August 2017 Antworten
im Forum für Webhosting Homepage gefunden:
CRC 16
mschrotlich
Pixelschubser
Threadstarter




Beiträge: 4

Hallo,

ich wollte ein CRC16 berechnen in PHP, nur leider funktioniert es nicht.
Hier mein Versuch:
(also ich lese eine Hexzahl ein)

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20: 
21: 
22: 
23:
function crc_16($Str)
{
$crc_ = '0xFFFF';
$a001_ = '0xA001'; 

$Pos_ = 0;

for ($Sf = 1; $Sf <= (strlen ($Str) / 2); $Sf ++)
  {  $BoM = hexdec($Str[$Pos_] . $Str[$Pos_ + 1]);
     $Pos_ ++; $Pos_ ++;
     $crc_ = $crc_ ^ $BoM;
     for ($Sb = 1; $Sb <= 8; $Sb ++)
      {  $droppedbit = $crc_ & 1;
         $crc_x = 0;
         if ($crc_ & 1)  $crc_x = 32768;
         $crc_ = $crc_ >> 1;
         $crc_ = $crc_ | $crc_x;
         if ($droppedbit = 1)  $crc_ = crc_ ^ $a001;
       }
  }
return $crc_;
}



und hier der Quell wo ich es her habe, scheinbar Delphi for PHP, sieht wie ein Pascal Quell aus, nur fehlen die Simekolons bei den "end"


1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18:
function crc = crc16(str)

crc = uint16(hex2dec('FFFF'));
a001 = uint16(hex2dec('A001'));

for i=1:length(str)
    ByteOfMessage = str(i);
    crc = bitxor(crc,ByteOfMessage);
    for j=1:8
       droppedbit=bitget(crc,1);
       crc = bitshift(crc,-1);
       if droppedbit
           crc = bitxor(crc,a001);
       end        
    end
end  


Könnte mir da jemand weiter helfen, oder gibt es schon was fertiges ?
Das es CRC32 intern gibt ist mir bekannt. Das sind aber 4 Byte, bei 16 Bit sind es nur 2 Byte, soll in eine mySQL Datenbank als Indiz die Datenbank schnell machen. Also einen String anhand des CRC Wertes finden.

Danke!

Diese Nachricht wurde geändert von: mschrotlich
  Profil   Editieren   Zitieren
Ori
Mausakrobat




Beiträge: 163

MySQL kann Indizes auch auf varchar-Spalten einrichten. Benutz sie.

Ergebnis: Es ist schnell und du musst nicht eine Zeile Code ändern.

  Profil   E-Mail   Website   Editieren   Zitieren
mschrotlich
Pixelschubser
Threadstarter




Beiträge: 4

Hallo,

ja, habe es auch anders gemacht, habe jetzt eine CRC Function gefunden die zwei Char als Ergebnis liefert.

Mir ging es eigentlich darum, warum die Function immer 0 ausgab. Wo hatte ich da einen Fehler bei der Umsetzung.

  Profil   Editieren   Zitieren
Ori
Mausakrobat




Beiträge: 163

Abgesehen davon, dass der Code sehr unübersichtlich ist, wird wohl

1:
if ($droppedbit = 1)  $crc_ = crc_ ^ $a001;


Auslöser des Versagens sein. Da sind gleich drei Fehler drin. Oder aber, dass du $crc_ und $a001_ als Strings belegt hast, sie aber Integer sein sollten.

Ein paar rhetorische Fragen, die mir dazu noch einfallen:
Was sollen die Unterstriche? Warum formatierst du deinen Code nicht? Warum benennst du die Variablen um, wenn du den Code portierst? Warum teilst du die Länge des Strings durch zwei? Warum nimmst du nicht einfach Code, den jemand anders geschrieben hat, und der funktioniert? (Suche: php crc16. Finde das hier).

  Profil   E-Mail   Website   Editieren   Zitieren
mschrotlich
Pixelschubser
Threadstarter




Beiträge: 4

Hi,

danke für die hilfe, der Quell von den Link haut spitze hin.

Ja, eine Antwort auf deine Fragen, programmiere seit über 20 Jahren nur Pascal (jetzt eben Delphi), und PHP ist doch ziemlich C belastet. Darum komme ich noch absolut nicht klar, bin imemr froh wenn ein script funktioniert.
Ach ja, habe den gleichen Quell für Delphi, und kann auf die mySQL Datenbank per Port zugeifen, dadurch ist dann auch die gleiche CRC von Delphi und PHP möglich. Getestet habe ich es aber noch nicht, werde ich jetzt am WE machen.
Danke noch mal!

mfG...

  Profil   Editieren   Zitieren
mschrotlich
Pixelschubser
Threadstarter




Beiträge: 4

he,

da fällt mir noch ein:
Warum teilst du die Länge des Strings durch zwei?


ich schrieb:
(also ich lese eine Hexzahl ein)


Klar oder ?

mfG...

Diese Nachricht wurde geändert von: mschrotlich
  Profil   Editieren   Zitieren
 

Antworten


Forum » PHP & MySQL » CRC 16

Aktuelle Beiträge zur Hilfe im Forum für Homepage - CRC 16 im Forum Homepage Hosting AntwortenLetztes Posting
CMS für Online Shop
in "PHP & MySQL"
20 07.08.2017 05:54 von Isasimon
Schnell viel Geld ohne Aufwand verdienen, mit dem Smartphone
in "PHP & MySQL"
3 29.07.2017 17:13 von Nuised
Visual Composer selber programmieren?
in "PHP & MySQL"
0 22.01.2017 23:45 von Redji
php preg_replace_callback für dynamischen Link
in "PHP & MySQL"
0 05.07.2016 11:02 von Rm21
PHP Code verschlüsseln
in "PHP & MySQL"
20 21.02.2016 21:25 von Kilian1
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
migrierter WP-Blog läuft nicht ...
in "PHP & MySQL"
0 04.02.2016 02:01 von Oxygon
Fertige PHP Scripte für Ihre Homepage
in "PHP & MySQL"
0 16.12.2015 12:02 von PHP-Script-Shop
Callback Befehl ++ Session ID Eintrag +++
in "PHP & MySQL"
2 16.12.2015 11:57 von PHP-Script-Shop
PHP befehl ausführen
in "PHP & MySQL"
9 16.12.2015 11:52 von PHP-Script-Shop
suche online community script
in "PHP & MySQL"
3 16.12.2015 11:51 von PHP-Script-Shop
Text basierender Chat
in "PHP & MySQL"
5 16.12.2015 11:51 von PHP-Script-Shop
Counter mit PHP
in "PHP & MySQL"
2 16.12.2015 11:50 von PHP-Script-Shop
Wo bekommt man fertige PHP Scripte her?
in "PHP & MySQL"
12 16.12.2015 11:42 von PHP-Script-Shop



Besucher : 5245103    Heute : 495     Gestern : 1177     Online : 31     22.8.2017    11:10      3 Besucher in den letzten 60 Sekunden        
alle 20.00 Sekunden ein neuer Besucher
Die letzten 30 Referrer :

1 18:30 - https://google.de/search - störung gmx
2 1:50 - bing.com/search - 49 Gesch
3 1:38 - bing.com/search - 49 Gesch
4 1:25 - bing.com/search - 49 Gesch
5 23:29 - bing.com/search - beispiel strato forum
6 18:09 - google.de/search - HTML Formulardaten versenden
7 15:55 - https://google.at/search - B
8 12:36 - https://qwant.com/ - theo aktivierungscode generator
9 10:57 - google.bg/search - skype funktioniert nicht mehr 2017
10 2:37 - bing.com/search - gmx störung
11 15:59 - sm.de/ - probleme bei outlook hotmail update
12 11:23 - bing.com/search - auf bestimmten strato server einloggen
13 20:42 - bing.com/search - gmx störung
14 15:34 - google.com/search - content
15 15:22 - google.com/search - content
16 15:20 - google.com/search - content
17 7:17 - bing.com/search - probleme posteingang mit web freemail 2017
18 4:35 - https://bing.com/search - hg bidopa
19 22:59 - bing.com/search - gmx keine mails schreiben möglich störung
20 23:34 - google.de/search - balken in der homepage
21 12:53 - de.search.yahoo.com/search - freemail die kostenlose e news
22 11:30 - astromenda.com/results.php - GMX Netzprobleme
23 22:07 - google.de/search - handy orten freundin
24 13:06 - bing.com/search - htmlcode formular absenden
25 12:30 - google.de/search - heimlich handy orten kostenlos
26 11:52 - bing.com/search - probleme hotmail konto 2017
27 11:27 - bing.com/search - stromverbrauch server pro jahr
28 18:19 - bing.com/search - gmx keine mails schreiben möglich störung
29 17:04 - google.com/search - content
30 17:03 - google.com/search - content

Nach oben