2009-05-15 2 views
0

Blowfishを使用してxmlデータを暗号化できるようにファイルとして私に送信された秘密鍵があります。キーをアクセスしてAS3Cryptoで使用できるようにするにはどうすればよいですか?私は[Embed]メタタグを使って埋め込む必要があると仮定します。 mimeType = "application/octet-stream"ですが、それが正しいかどうかはわかりません。どのように埋め込みますか?このファイルを秘密鍵として参照しますか?私が暗号化しているxmlは、Java側で解読できません。AS3CryptoとJavax.Cryptoの間のECB/PKS5/Blowfishがパディングエラーで失敗する

javax.crypto.BadPaddingException:最終ブロックが正しく埋め込まれていないと仮定すると、各試行は失敗します。

誰もがJava実装で動作するためにlibを使用した経験があり、これを使用するには理想的なモード/パディング/ 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; 

答えて

1

知らんをバイナリデータを埋め込む方法についてはまだわからないが、あなたは(それは確かにそれを行うための一つの良い方法です)[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/

+0

これがまさに問題でした。ありがとう! – ChickensDontClap

+0

probs、yo ... – aaaidan

関連する問題