Sto usando la libreria di crittografia Javascript di Stanford e vorrei maggiori informazioni a riguardo.
1.) Ho un testo ASCII e una chiave casuale a 128 bit. Voglio concatenare queste due cose, quindi converto il testo ASCII in esadecimale e poi in un BitArray.
Esempio: var text="kheil" ; var textHex=asc2hex(text);var textBitArray= sjcl.codec.hex.toBits(textHex);
Ottengo il seguente BitArray: 1802003817,8797904961536
.
Ciò che mi preoccupa è l'ultimo numero, perché è più lungo? È più di un numero a 32 bit. Con un po 'di testo ASCII, va bene, ho un BitArray con numeri a 32 bit, ma con altri ottengo questo tipo di suff, è normale? E se concatro con un numero casuale: -96822511,1783357814,2009621896,-1425360948
, ottengo: 1802003817,1828338331,292178913,1987561573,-2002056521,8795220606976
che non è una buona concatenazione no? La mia ipotesi è che il testo non sia un multiplo di 32 bit, ma come ottenere un buon BitArray per qualsiasi testo?
2.) Anche per calcolare una chiave casuale a 128 bit uso sjcl.random.randomWord (4,0), è una funzione efficiente per calcolare una chiave casuale? Ho letto da qualche parte che non dovrei usare 0 come paranoia, o è necessario chiamare startCollector () per ottenere entropia. Sono un po 'confuso a riguardo, qualcuno potrebbe spiegarmelo?
Grazie!