2012-11-10 50 views
1

我想用adobe air加密和decrpyt文件。我用代碼成功地加密了文件。但我還沒有decrpyt加密文件,請幫助我,我能做什麼?如何使用Adobe Air加密和Decrpyt文件? (加密正常,但decrpyt還沒有)

我使用這個代碼加密:

import com.hurlant.crypto.symmetric.AESKey; 
import com.hurlant.crypto.symmetric.DESKey; 
import com.hurlant.util.Hex; 
import flash.filesystem.FileStream; 
import flash.filesystem.File; 
import flash.utils.ByteArray; 
import flash.filesystem.FileMode; 
import flash.display.BitmapData; 
import flash.display.Bitmap; 
import com.hurlant.util.ArrayUtil; 

stop(); 

var stream:FileStream; 
var stream2:FileStream; 
var file:File; 

var fileToEncrypt:ByteArray; 

encrypt(); 

function encrypt():void 
{ 
    file = File.applicationDirectory.resolvePath("logo_markatalog.png"); 

    fileToEncrypt = new ByteArray; 

stream = new FileStream(); 
stream.open(file, FileMode.READ); 
stream.readBytes(fileToEncrypt); 
stream.close(); 

var appDir:String = File.applicationDirectory.nativePath; 
//file = File(appDir+"logo_markatalog_enc.png"); 

file = new File(appDir+"/logo_markatalog_enc.png"); 

var key:ByteArray = Hex.toArray("635232557"); 
var aes:AESKey = new AESKey(key); 

aes.encrypt(fileToEncrypt); 

stream2 = new FileStream(); 
stream2.open(file, FileMode.WRITE); 
stream2.writeBytes(fileToEncrypt); 
stream2.close(); 
} 
+0

它目前沒有工作的方式?你不知道如何嘗試或者你得到一個錯誤?如果您遇到錯誤,請發佈堆棧跟蹤,以便可以使用某些東西。 – Stray

回答

1

我不能告訴你,你做錯了什麼,但我可以給你什麼,我用它來加密對象爲文件和解密他們回來。

someKey var是用於加密和解密的密鑰。

theFileWithEncryptedObject var是我在第一個代碼部分保存加密對象的文件,從第二個代碼部分讀取加密對象。

我在密鑰上使用md5散列,這不是必需的。

這是我加密對象爲文件與hurlant.crypto方式:

var fileStream:FileStream = new FileStream(); 
fileStream.open(theFileWithEncryptedObject, FileMode.WRITE); 
var bytes:ByteArray = new ByteArray(); 
bytes.writeObject(theObjectToEncrypt); 

var key:ByteArray = Hex.toArray(someKey); 
var md5:MD5 = new MD5(); 
key = md5.hash(key); 

var pad:IPad = new PKCS5(); 
var aes:ICipher = Crypto.getCipher("simple-aes-128-cbc", key, pad); 
pad.setBlockSize(aes.getBlockSize()); 
aes.encrypt(bytes); 

fileStream.writeBytes(bytes); 
fileStream.close(); 

在這裏,我如何解密並從文件中找回我的對象​​:

var bytes:ByteArray = new ByteArray(); 
var fileStream:FileStream = new FileStream(); 
fileStream.open(theFileWithEncryptedObject, FileMode.READ); 
fileStream.readBytes(bytes); 
fileStream.close(); 

var key:ByteArray = Hex.toArray(someKey); 
var md5:MD5 = new MD5(); 
key = md5.hash(key); 

var pad:IPad = new PKCS5; 
var aes:ICipher = Crypto.getCipher("simple-aes-128-cbc", key, pad); 
pad.setBlockSize(aes.getBlockSize()); 
aes.decrypt(bytes); 

var theObjectDecrypted:Object; 
bytes.position = 0; 
theObjectDecrypted = bytes.readObject(); 

希望這有助於。