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)