首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.Net加密,AS3解密

.Net加密,AS3解密
EN

Stack Overflow用户
提问于 2013-06-24 13:12:05
回答 1查看 791关注 0票数 1

我需要在ASP.net中加密一些文件,并在一个使用Action 3构建的闪存应用程序中对它们进行解密。

AS3开发人员找到了一个库调用AS3crypto,这对于AS3来说似乎是一个很好的调用。其思想是使用相同的密钥进行加密和解密。对称加密?

但我很难找到可以使用相同算法进行加密的.Net等效程序。

我尝试过来自4 4guysfromrolla博客的RC4示例,它的工作对我来说太慢了。我在这个示例中尝试了AES (http://msdn.microsoft.com/en-us/library/system.security.cryptography.rijndaelmanaged(v=vs.100).aspx在.Net上工作得很好,但我似乎无法使用AS3crypto解密以获得相同的文件)。AS3crypto似乎不喜欢使用IV进行解密。我只能提供一把钥匙。

到目前为止我迷路了。如何对.Net中的文件进行加密,并将其解密回AS3以获得相同的文件?

EN

回答 1

Stack Overflow用户

发布于 2013-11-10 16:32:28

注意:对键和IV都使用16个字符长度,例如: Key: 1234567890123456和IV: 9876543210654321

这是C#代码

代码语言:javascript
复制
    public byte[] Encrypt(byte[] someData, string KEY, string IV)
    {
        //preparing
        byte[] keyBytes = Encoding.UTF8.GetBytes(KEY); 
        byte[] ivBytes = Encoding.UTF8.GetBytes(IV); 


        //here goes encryption
        RijndaelManaged rijndaelManaged = new RijndaelManaged();
        rijndaelManaged.Key = keyBytes;
        rijndaelManaged.IV = ivBytes;
        rijndaelManaged.BlockSize = 128;
        rijndaelManaged.Mode = CipherMode.CBC;
        ICryptoTransform encryptor = rijndaelManaged.CreateEncryptor(rijndaelManaged.Key, rijndaelManaged.IV);

        byte[] result = null;
        using (MemoryStream memoryStream = new MemoryStream())
        {
            using (CryptoStream cryptoStream = new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
            {
                cryptoStream.Write(someData, 0, someData.Length);
                cryptoStream.FlushFinalBlock();
                result = memoryStream.ToArray();
            }
        }

        return result;


    }

下面是使用AS3库的AS3Crypto代码

代码语言:javascript
复制
    private function decrypt(input:ByteArray, decrKey:String, decrIV:String):ByteArray
    {

        var key:ByteArray = Hex.toArray(Hex.fromString(decrKey));
        var pad:IPad = new NullPad();
        var aes:ICipher = Crypto.getCipher("aes-cbc", key, pad);
        var ivmode:IVMode = aes as IVMode;
        ivmode.IV = Hex.toArray(Hex.fromString(decrIV));
        aes.decrypt(input);

        return input;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17276371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档