gpt4 book ai didi

java - AS3Crypto 和 Javax.Crypto 之间的加密/解密 ECB/PKS5/Blowfish 失败并出现填充错误

转载 作者:行者123 更新时间:2023-12-01 16:11:50 27 4
gpt4 key购买 nike

我有一个 key 作为文件发送给我,这样我就可以使用 Blowfish 加密一些 xml 数据。如何访问 key 以便将其与 AS3Crypto 一起使用?我假设我需要使用 [Embed] 元标记来嵌入它。它是 mimeType="application/octet-stream"但我不确定这是否正确。如何嵌入该文件,然后引用该文件作为 key ?我正在加密的 xml 无法在 Java 端解密。每次尝试都会失败,并出现以下异常:

javax.crypto.BadPaddingException:给定的最终 block 未正确填充。

作为奖励,如果有人有使用该库来处理 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;

最佳答案

不知道您是否仍然不确定如何嵌入二进制数据,但使用 [Embed] 标记是正确的(这当然是一种好方法)。

我经常这样嵌入:

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

...

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

更多信息: http://dispatchevent.org/roger/embed-almost-anything-in-your-swf/

关于java - AS3Crypto 和 Javax.Crypto 之间的加密/解密 ECB/PKS5/Blowfish 失败并出现填充错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/869470/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com