Unity Addressables加密

卧槽,今天一打开Package Manager我发现了什么?!!!


image.png

我的天呐,等了这么久终于出了!居然单独出了一个AddressablesCN用于加密,简直太贴心了。
此处感动地留下了泪水,幸好项目还没发布,分分钟转过来。

本贴就是感慨一下,顺带召唤小伙伴们,快去用AddressablesCN啊,简单易用,有了加密功能简直无懈可击~

附带官方使用说明地址:https://ucgbucket.unitychina.cn/AssetStreaming/AddressablesCN.pdf

这里简述一下使用方法:
1.创建Group


image.png

2.如果要设置自己的密钥:在工程里新建一个脚本,脚本内容如下,命名你们随意,设置一下密钥,注意密钥需要16位,正常ASCII码均可,也就是普通数字大小写字母都行

using System.IO;
using System.Security.Cryptography;
namespace UnityEngine.ResourceManagement.ResourceProviders
{
    public class MyAESStreamProcessor : IDataConverter
    {
        byte[] Key
        {
            get
            {
                return
System.Text.Encoding.ASCII.GetBytes("ABCDEFGHIJKLMNOP");//修改此处密钥,需要16位,正常ASCII码均可
            }
        }
        SymmetricAlgorithm m_algorithm;
        SymmetricAlgorithm Algorithm
        {
            get
            {
                if (m_algorithm == null)
                {
                    m_algorithm = new AesManaged();
                    m_algorithm.Padding = PaddingMode.Zeros;
                    var initVector = new byte[m_algorithm.BlockSize / 8];
                    for (int i = 0; i < initVector.Length; i++)
                        initVector[i] = (byte)i;
                    m_algorithm.IV = initVector;
                    m_algorithm.Key = Key;
                    m_algorithm.Mode = CipherMode.ECB;
                }
                return m_algorithm;
            }
        }

        public Stream CreateReadStream(Stream input, string id)
        {
            return new CryptoStream(input,
            Algorithm.CreateDecryptor(Algorithm.Key, Algorithm.IV),
            CryptoStreamMode.Read);
        }

        public Stream CreateWriteStream(Stream input, string id)
        {
            return new CryptoStream(input,
            Algorithm.CreateEncryptor(Algorithm.Key, Algorithm.IV),
            CryptoStreamMode.Write);
        }
    }
}

3.Group上的高级设置选一下加密方式


image.png

用起来真简单,给AddressablesCN点赞~


在实际项目使用中发现他会报错,然后加载半天后Addressables报空物体,排查了一下,发现所有的Group都得选同一个加密方式,尤其是默认的Group别忘了选~


2020.1.29更新
好吧我又回来了,我收回以上的赞扬。
实际使用的时候发现AddressablesCN会在启动程序的时候卡顿很久,造成了大量的GC


image.png

默默换回了Addressables。。。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 12,732评论 28 53
  • 信任包括信任自己和信任他人 很多时候,很多事情,失败、遗憾、错过,源于不自信,不信任他人 觉得自己做不成,别人做不...
    吴氵晃阅读 11,351评论 4 8
  • 步骤:发微博01-导航栏内容 -> 发微博02-自定义TextView -> 发微博03-完善TextView和...
    dibadalu阅读 8,360评论 1 3
  • 回这一趟老家,心里多了两个疙瘩。第一是堂姐现在谈了一个有妇之夫,在她的语言中感觉,她不打算跟他有太长远的计划,这让...
    安九阅读 8,888评论 2 4