2009-05-15 5 views
0

Blowfish를 사용하여 일부 XML 데이터를 암호화 할 수 있도록 파일로 저에게 보낸 비밀 키가 있습니다. AS3Crypto에서 사용할 수 있도록 키에 액세스하려면 어떻게해야합니까? 나는 [Embed] 메타 태그를 사용하여 그것을 Embed해야한다고 가정합니다. mimeType = "application/octet-stream"입니다.하지만 맞는지 확실하지 않습니다. 어떻게이 파일을 비밀 키로 포함하고, 참조합니까? 암호화하고있는 xml은 Java 측에서 해독 할 수 없습니다.AS3Crypto와 Javax.Crypto 사이의 ECB/PKS5/Blowfish가 패딩 오류로 인해 실패합니다.

예외가 발생하면 각 시도가 실패합니다. 마지막 블록이 올바르게 채워지지 않았다고 가정하십시오.

보너스로, 자바 구현을 사용하기 위해 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

관련 문제