FileStream加密、原理

3 篇文章 0 订阅

文件加密原理
有个概念需要理解,就是我们电脑中的文件都可以用二进制来表示里面的内容(字节数组)

加密原理:
1、加密一个文件就是把这个文件的内容(字节数组)按加密的规则去修改它的字节数组(内容)
2、加密后这个文件就不是原来的文件了,因为字节数组(内容)被更改了,所以如果不解密的话这个文件是不能用的
解密原理:
1、解密就是把加密的文件字节数组按加密的规则去解密它,把字节数组(内容)恢复成原来的样子
2、解密后这个文件就是没加密之前的文件了,可以正常使用了

在游戏项目中经常会对AssetBundle包就行加密(资源包、代码包…)
方式一:
通过 FileStream + 密钥 按自己的规则去加密(对字节进行加减乘除异或取反等操作) AssetBundle

string key = "a1b2c3d5448we54asd21zcs";	// 自定义密钥(我乱打的。。。)
byte[] keyByte = System.Text.Encoding.ASCII.GetBytes(key);

然后解密的时候先使用WWW通过路径加载这个AssetBundle

WWW www = new WWW("path"));	//path-文件路径	www.bytes-文件字节数组
yield return www;

再通过密钥 + www.bytes(加密后的字节数组) + a1b2c3d5448we54asd21zcs 和自己定的规则去解密
最后通过 AssetBundle.LoadFromMemory()去加载解密后的AssetBundle

使用FileStream加密一个文件总结:

加密:

  1. 通过FileStream打开这个文件
  2. 通过FileStream加自定义的规则去修改这个文件的字节数组

解密:

  1. 通过WWW加载这个文件
  2. 按自定义的规则去解密这个文件
  3. 通过AssetBundle.LoadFromMemory加载
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值