salve a tutti...ho bisogno veramente di un grande aiuto, spero che qualcuno di voi possa aiutarmi

stò creando un programma per comunicare tramite seriale con java e quando invio i dati,li devo impacchettare in un pacchetto che contiene un preambolo(primo byte) ,la lunghezza del comando+payload(secondo byte), il comando(terzo byte),il payload(dal quarto all'N-1 esimo byte)
e il CRC di controllo(ultimo byte)
Il mio problema stà sul CRC, che và calcolato sul comando e sul payload( dal terzo all'N-1 esimo byte cioè)
Come faccio a calcolare questo benedetto CRC tramite un programmino??
Il polinomio generatore del CRC è:X^8+X^2+X+1, e i dati che invio sono sotto forma di esadecimali e stringhe!
Vi prego aiutatemiiii!!!!!
grazie a tutti e buona giornata