• unity加密方案


    分成c#代码(SDK)和c++代码(dllso)

    加解密流程:
    c# new一个新类,初始化的时候传入key
    c# 通过SetString方法传入待加密或者解密字符串
    c# 通过Run方法,传递要求加密(0)或者解密(1)
    c# 通过GetString方法获取加密或者解密结果

    dll(c++)功能:
    核心加解密函数


    密钥保密:
    key在c#保存,使用64位字符串,按特定位取,c#采用rsa解密
    salt在c++保存,取sha256
    iv在文件中保存,需要另外一个工具生成文件内容,游戏程序只读文件。

    工具默认规则为生成128位长度字符,按奇数1、3、5位把base64后的iv字符串插入,插入完毕下一个奇数位,再补一个“=”


    混淆方案:
    1、dll对外没有直接加解密函数,只能按步骤调用
    2、dll内部加解密有默认keysaltiv,如果被人直接调用,不会出错
    3、keysaltiv保存在三个不同地方,组合在一起才能正确解密
    4、函数定义和变量命名避免keyencryptdecrypt等
    5、unity最终使用IL2CPP编译

  • 相关阅读:
    .NET反射的优化
    jdk、tomcat、solr环境搭建
    实现简单的ORM
    异步async/await简单应用与探究
    线程(Thread,ThreadPool)、Task、Parallel
    序列化
    IEnumerable与IEnumerator
    URL重写与URL路由
    django rest framework(10)
    restful 规范
  • 原文地址:https://www.cnblogs.com/linn/p/12758703.html
Copyright © 2020-2023  润新知