如何使用AdobeAIR加密和解密文件?(encrypt正常,但Decrypyt尚未启用)

如何使用AdobeAIR加密和解密文件?(encrypt正常,但Decrypyt尚未启用),air,encryption,Air,Encryption,我想用AdobeAIR加密和解密文件。我成功地用代码加密了文件。但是我还没有解密一个加密文件。请帮助我,我能做什么 我使用此代码进行加密: import com.hurlant.crypto.symmetric.AESKey; import com.hurlant.crypto.symmetric.DESKey; import com.hurlant.util.Hex; import flash.filesystem.FileStream; import flash.filesystem.Fil

我想用AdobeAIR加密和解密文件。我成功地用代码加密了文件。但是我还没有解密一个加密文件。请帮助我,我能做什么

我使用此代码进行加密:

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();
}

我不能告诉你们你们做错了什么,但我可以给你们我用来将对象加密到文件中并解密回来的东西

someKey var是用于加密和解密的密钥

FileWithEncryptedObject变量是我在第一个代码部分中保存加密对象的文件,我从中读取第二个代码部分中的加密对象

我在密钥上使用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();

希望这能有所帮助。

我不能告诉你们你们做错了什么,但我可以给你们我用来将对象加密到文件中并解密回来的东西

someKey var是用于加密和解密的密钥

FileWithEncryptedObject变量是我在第一个代码部分中保存加密对象的文件,我从中读取第二个代码部分中的加密对象

我在密钥上使用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();

希望这能有所帮助。

目前它在哪些方面不起作用?你不知道如何去尝试,或者你得到了一个错误?如果您遇到错误,请发布stacktrace,这样就可以从中工作。它目前以何种方式不工作?你不知道如何去尝试,或者你得到了一个错误?如果您遇到错误,请发布stacktrace,这样就有了工作依据。