Verschlüsseln / Entschlüsseln EZB / PKS5 / Blowfish zwischen AS3Crypto & javax.crypto schlägt mit Polsterung Fehler

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

Frage

Ich habe einen geheimen Schlüssel, der zu mir geschickt wurde als eine Datei, so kann ich einige XML-Daten mit Blowfish verschlüsselt. Wie kann ich den Schlüssel, so dass ich es mit AS3Crypto verwenden kann? Ich nehme an, ich brauche es zum Einbetten des [Embed] Meta-Tag. Es ist mimt = „application / octet-stream“ aber ich bin nicht sicher, ob das ist richtig. Wie binde ich, dann diese Datei als den geheimen Schlüssel verweisen? Die xmls, dass ich die Verschlüsselung kann nicht auf der Java-Seite entschlüsselt werden. Jeder Versuch fehlschlägt mit dieser Ausnahme:

javax.crypto.BadPaddingException: Gegeben letzter Block nicht richtig aufgefüllt.

Als Bonus, wenn jemand hat Erfahrung der lib mit der Java-Implementierung zu arbeiten und kennt die idealen Modus / padding / IV, das zu verwenden wäre genial. Dank!

//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;
War es hilfreich?

Lösung

Keine Ahnung, wenn Sie noch nicht sicher sind, wie binäre Daten einzubetten, aber du hast recht über den [Embed]-Tag (es ist sicherlich ein guter Weg, es zu tun).

ich oft einbetten wie folgt aus:

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

...

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

Mehr Infos: http://dispatchevent.org/roger/embed-almost-anything -in-your-swf /

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top