Domanda

Ho una chiave segreta che è stata inviata a me come un file in modo che in grado di crittografare alcuni dati XML utilizzando Blowfish. Come faccio ad accedere alla chiave in modo che possa utilizzarlo con AS3Crypto? Presumo che ho bisogno di incorporare usando il [Embed] meta tag. E 'mimeType = "octet-stream application /" ma non sono sicuro se questo è giusto. Come faccio a incorporare, quindi fare riferimento a questo file come la chiave segreta? Le XMLs che sto crittografia non possono essere decifrati dal lato Java. Ogni tentativo non riesce con questa eccezione:

javax.crypto.BadPaddingException: dato blocco finale non correttamente imbottita.

Come bonus, se qualcuno ha esperienza con la lib di lavorare con l'implementazione Java e conosce la modalità / imbottitura / IV ideale per l'uso che sarebbe impressionante. Grazie!

//keyFile is an embedded asset. I was given a file to use as the key
var kdata:ByteArray = new keyFile() as ByteArray;

//Convert orderXML to Base64
var orderData:ByteArray = Base64.decodeToByteArray(String(orderXML));

//Cipher name   
var cname:String = "simple-blowfish-ecb";

var pad:IPad = new PKCS5;
var mode:ICipher = Crypto.getCipher(cname, kdata, pad);

//not sure if this is necessary. seems to be also set in mode
pad.setBlockSize(mode.getBlockSize());

mode.encrypt(orderData);

var transmitXML:String = Base64.encodeByteArray(orderData);

//DEBUG: Output to TextArea
storePanel.statusBox.text += "\n--TRANSMIT--\n"+transmitXML;
È stato utile?

Soluzione

Non so se siete ancora incerti su come incorporare i dati binari, ma hai ragione sull'utilizzo della [Embed] tag (è certamente un buon modo di farlo).

Mi capita spesso di incorporare in questo modo:

[Embed(source="myKeyFile.key", mimeType="application/octet-stream")]
private const _KeyFile:Class;
private var keyFile:ByteArray = new _KeyFile();

...

trace(keyFile.length + " bytes"); // XYZ bytes

Più informazioni: http://dispatchevent.org/roger/embed-almost-anything -in-your-swf /

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top