2009-05-15 4 views
0

J'ai une clé secrète qui m'a été envoyée sous forme de fichier afin que je puisse crypter des données XML en utilisant Blowfish. Comment accéder à la clé pour pouvoir l'utiliser avec AS3Crypto? Je suppose que j'ai besoin de l'intégrer en utilisant la balise Meta [Embed]. C'est mimeType = "application/octet-stream" mais je ne suis pas sûr que ce soit vrai. Comment puis-je intégrer, puis référencer ce fichier en tant que clé secrète? Les xml que je crypte ne peuvent pas être décryptés du côté Java. Chaque tentative échoue avec cette exception:Crypter/Décrypter ECB/PKS5/Blowfish entre AS3Crypto et Javax.Crypto échoue avec erreur de remplissage

javax.crypto.BadPaddingException: Le bloc final n'est pas correctement rembourré. En prime, si quelqu'un a l'expérience de l'utilisation de la lib pour travailler avec l'implémentation Java et connaît le mode/rembourrage/IV idéal à utiliser, ce serait génial. Merci!

//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; 

Répondre

1

J'sais si vous n'êtes toujours pas sûr de la façon d'intégrer des données binaires, mais vous avez raison sur l'utilisation de la balise [Embed] (il est certainement une bonne façon de le faire).

souvent j'intégrer comme ceci:

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

... 

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

Plus d'infos: http://dispatchevent.org/roger/embed-almost-anything-in-your-swf/

+0

Ce fut exactement le problème. Merci! – ChickensDontClap

+0

Aucun problème, yo ... – aaaidan

Questions connexes