Criptografar / descriptografar BCE / PKS5 / Blowfish entre AS3Crypto & javax.crypto falha com erro de preenchimento

StackOverflow https://stackoverflow.com/questions/869470

Pergunta

Eu tenho uma chave secreta que me foi enviado como um arquivo para que eu possa criptografar alguns dados XML usando Blowfish. Como faço para acessar a chave para que eu possa usá-lo com AS3Crypto? Eu suponho eu preciso incorporá-lo usando o [Embed] tag meta. É mimeType = "application / octet-stream", mas não tenho certeza se isso é certo. Como faço para incorporar, em seguida, fazer referência a esse arquivo como a chave secreta? Os xmls que estou criptografia não pode ser descriptografado no lado do Java. Cada tentativa falhar com uma exceção:

javax.crypto.BadPaddingException: bloco final Dado não devidamente preenchido.

Como um bônus, se alguém tem experiência usando o lib ao trabalho com a implementação Java e sabe o modo ideal / preenchimento / IV de usar que seria fantástico. Obrigado!

//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;
Foi útil?

Solução

Não sei se você ainda está inseguro sobre como os dados binários para incorporar, mas você está certo sobre o uso da tag [Embed] (é certamente uma boa maneira de fazê-lo).

Muitas vezes incorporar como esta:

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

...

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

Mais informações: http://dispatchevent.org/roger/embed-almost-anything -em-seu-swf /

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top