我有一个作为文件发送给我的密钥,因此我可以使用 Blowfish 加密一些 xml 数据。如何访问密钥以便可以将其与 AS3Crypto 一起使用?我假设我需要使用 [Embed] 元标记嵌入它。它是 mimeType="application/octet-stream" 但我不确定这是否正确。如何嵌入,然后将此文件作为密钥引用?我正在加密的 xml 无法在 Java 端解密。每次尝试都失败,但出现以下异常:
javax.crypto.BadPaddingException:给定最终块未正确填充。
作为奖励,如果有人有使用 lib 来处理 Java 实现的经验并且知道使用的理想模式/填充/IV,那将是很棒的。谢谢!
//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;