これは基本的なセキュリティアプリであり、一部のデータを暗号化して解読したいだけです。テキストボックスにサイバーテキストを表示し、そのテキストを取得した後、それをバイト配列に変換した後、復号化中に取得していますエラー
Error: ECB mode cipher length must be a multiple of blocksize 16
at com.hurlant.crypto.symmetric::ECBMode/decrypt()
これは security.mxml です
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<fx:Script>
<![CDATA[
import com.hurlant.crypto.Crypto;
import com.hurlant.crypto.prng.Random;
import com.hurlant.crypto.symmetric.ICipher;
import com.hurlant.util.Base64;
import com.hurlant.util.Hex;
import com.security.AesKeyGen;
import com.security.EncryptionKeyGen;
import mx.utils.Base64Decoder;
public var mytest:String;
private var kdata:ByteArray = new ByteArray();
private var cleartextBytes:ByteArray = new ByteArray();
private function encryptedSave():void
{
//create or retrieve the current shared object
var so:SharedObject = SharedObject.getLocal("encryptedStore");
//generate a random key
var ec:EncryptionKeyGen = new EncryptionKeyGen();
kdata=//some plaine text converted to byte array or some byte array
trace(kdata);
//store our data to encrypt into a ByteArray
cleartextBytes.writeUTFBytes(plainText.text);
var aes:ICipher = Crypto.getCipher("aes-ecb", kdata, Crypto.getPad("pkcs5"));
aes.encrypt(cleartextBytes);
trace("after Encription-------------"+cleartextBytes.length+cleartextBytes);
}
private function encryptedLoad():void
{cleartextBytes=new ByteArray();
cleartextBytes.writeUTFBytes(cyperText.text);
trace(cleartextBytes +"-------------"+cleartextBytes.length);
var aes:ICipher = Crypto.getCipher("aes-ecb", kdata, Crypto.getPad("pkcs5"));
aes.decrypt(cleartextBytes);
}
]]>
</fx:Script>
<mx:Panel width="600" height="400" title="FlexEncryptionExample1">
<mx:Form width="100%">
<mx:FormHeading label="Stored WebService credentials"/>
<mx:FormItem label="User: " width="100%">
<mx:TextInput id="plainText" width="100%"/>
</mx:FormItem>
<mx:FormItem label="CyperText: " width="100%">
<mx:TextInput id="cyperText" width="100%"/>
</mx:FormItem>
<mx:FormItem label="plainText2: " width="100%">
<mx:TextInput id="plainText2" width="100%"/>
</mx:FormItem>
<s:Label text="" id="encryptedText" visible="false"/>
</mx:Form>
<mx:HBox width="100%" horizontalAlign="center" verticalAlign="bottom">
<mx:Button label="Save" click="encryptedSave()"/>
<mx:Button label="Load" click="encryptedLoad()"/>
</mx:HBox>
</mx:Panel>
</s:Application>
誰でも私を助けてくださいありがとう.....