Salve a tutti, sto facendo un programma in php dove degli utenti si scambiano oggetti chiamati certificati. Ora io devo generare l'id di tale certificato tramite una funzione di hash.
Ho il codice in Java e vorrei prima di tutto capirlo bene per poi"tradurlo in php":
MessageDigest md = MessageDigest.getInstance("md5");
md.update(sender.getBytes("UTF8"));
md.update(receiver.getBytes("UTF8"));
md.update(relationTypes.getBytes("UTF8"));
md.update(Utils.objectToBytes(trustlevel));
md.update(Utils.objectToBytes(timestamp));
md.update(Utils.objectToBytes(distributionRules));
md.update(Utils.objectToBytes(randomNumber));
byte[] digest = md.digest();
id = new BASE64Encoder().encode(digest);
Da quanto ho capito fino ad ora col metodo update concateno semplicemente la serie di byte che passo come argomento. Digest dovrebbe calcolare la segnatura della serie di byte risultante, e BASE64Encoder trasforma il tutto in base 64. Ora mi interesserebbe fare il tutto in PHP.
Io avevo in mente di concatenare tutte in una variabile $digest per poi usare la funzione md5($digest).
E qui nascono i miei quesiti:
- Come faccio a trasformare una stringa(come ad esempio sender e receiver) in una serie di byte?
- Come faccio per fare la stessa cosa su un oggetto (come distributionRules)
- E' giusto concatenare tutto in una variabile e usare md5()
- Come faccio a codificare il risultato in base 64
Qualcuno riesce a suggerirmi qualcosa?
Grazie