Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: MusicBrainz DiscID

  Alt 27. Apr 2012, 05:49
Warum baust du denn den String nicht so auf, wie hier gezeigt
Die Ermittlung der DiskID ist auf dieser Seite.
Die schreiben dort 1+99 Track-Einträge und wenn keine Tracks mehr kommen, dann einfach Nullen
Zitat:
Calculating the Disc ID
The CD Index algorithm simply takes the following pieces of data and runs them through the SHA-1 hash function:
  • First track number (normally one): 1 byte
  • Last track number: 1 byte
  • Lead-out track offset: 4 bytes
  • 99 frame offsets: 4 bytes for each track
  • If there are less than 99 tracks (almost certainly), the value 0 will be used instead.
Ich bin mir da jetzt auch nicht ganz sicher, aber
Code:
sprintf(temp, "%02X", pCDInfo->First*Track);
sha_update(&sha, (unsigned char*) temp, strlen(temp));

sprintf(temp, "%02X", pCDInfo->Last*Track);
sha_update(&sha, (unsigned char*) temp, strlen(temp));

for (i = 0; i < 100; i++) {
    sprintf(temp, "%08X", pCDInfo->Frame*Offset[i]);
    sha_update(&sha, (unsigned char*) temp, strlen(temp));
}
sha_final(digest, &sha);
ist wohl etwas anderes als alles in einen String zu packen und dann durch den Hash zu jagen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (27. Apr 2012 um 05:54 Uhr)
  Mit Zitat antworten Zitat