当前位置:网站首页>webgame开发中的文件解密
webgame开发中的文件解密
2022-06-26 11:51:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
上一篇讲的是文件的加密,这一篇记录一下如何加载并显示图片。
因为图片文件经过加密,已经成了二进制流的文件了(一堆乱码),只能使用URLStream来加载资源了。
这里有一点要注意:URLStream中的读取操作是非阻塞的,在读取数据之前必须使用bytesAvailable属性来确定是否能够获取足够的数据,如何不能获取足够的数据,将引发EOFError异常。
主要思路:
1、加载加密后的资源,使用URLStream
2、调用解密方法,获取解密后的数据
3、使用Loader类的loadBytes方法加载资源
1: var urlLoader:URLStream = new URLStream(); 2: var url:String = getEncryptURL(url); //通过需要加载的资源url,来获取实际需要加载的资源地址,如xx.png实际将请求xx.p 3: 4: //监听urlLoader的事件 5: //Event.Complete、IOErrorEvent.IO_ERROR、ProgressEvent.PROGRESS、HTTPStatusEvent.HTTP_STATUS、Event.OPEN 6: 7: var req:URLRequest = new URLRequest(url); 8: 9: urlLoadedCount = 0; 10: 11: urlLoader.load(req); 12: 13: 14: 15: 16: 17: //onCompleteHandler方法中 18: var byte:ByteArray; 19: var byteLen:int; 20: 21: try 22: { 23: byteLen = urlLoader.bytesAvailable; 24: } 25: catch(e:Error) 26: { 27: if (urlLoadedCount++ > 3) 28: { 29: return ; 30: } 31: 32: //reload 重新加载,直至超过3次 33: 34: return ; 35: } 36: 37: urlLoadedCount = 0; 38: 39: byte = new ByteArray(); 40: urlLoader.readBytes(byte, 0, byteLen); 41: byte = EncryptUtils.DeEncrypt(byte); //对数据进行解密操作,与上一篇中的加密方法对应 42: byte.position = 0; 43: 44: //开始加载图片 45: var loader = new Loader(); 46: 47: //监听Event.Complete事件 48: loader.contentLoaderInfo.removeEventListener(Event.COMPLETE, loadImgCompleteHandler); 49: 50: var context:LoaderContext = new LoaderContext(); 51: context.applicationDomain = ApplicationDomain.currentDomain; 52: context.securityDomain = SecurityDomain.currentDomain; 53: 54: loader.loadBytes(byte, context); 55: 56: 57: //loadImgCompleteHandler方法 58: 此时loader.content已经为Bitmap类了,使用addChild即可完成图片的加载 59: 60: 61: //如果要加载的是xml、txt等文件内容,则无需此方法,使用byte.readUTFBytes(byte.bytesAvailable)便可得到解密后的字符串了 62: 更多参考:
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/133958.html原文链接:https://javaforall.cn
边栏推荐
- The best CMDB system
- HUST网络攻防实践|6_物联网设备固件安全实验|实验二 基于 MPU 的物联网设备攻击缓解技术
- 4. N queen problem
- 汇编语言(7)运算指令
- 请指教同花顺开户选选择哪家券商比较好?手机开户安全么?
- 请指教同花顺是什么软件?在线开户安全么?
- Pratique de l'attaque et de la défense du réseau HUST | 6 Expérience de sécurité du microprogramme de l'équipement IOT | expérience 2 technologie d'atténuation des attaques de l'équipement IOT basée s
- 19:第三章:开发通行证服务:2:在程序中,打通阿里云短信服务;(仅仅是打通阿里云短信服务器,不涉及具体的业务开发)
- Redis best practices? If I don't feel excited after reading it, I will lose!!
- 房租是由什么决定的
猜你喜欢
随机推荐
. Net, the usage of log components NLog, seriallog, log4net
Nacos2.x.x start error creating bean with name 'grpcclusterserver';
Redux related usage
openresty 概述
HUST網絡攻防實踐|6_物聯網設備固件安全實驗|實驗二 基於 MPU 的物聯網設備攻擊緩解技術
修改calico网络模式为host-gw
统计遗传学:第二章,统计分析概念
Introduction to the strongest swarm cluster one click deployment + hydrogen bomb level container management tool
动态规划解决股票问题(下)
这两天搭建环境遇到的几个问题
Machine learning linear regression - Experimental Report
Quantitative elementary -- akshare obtains stock code, the simplest strategy
[redis series] redis learning 16. Redis Dictionary (map) and its core coding structure
基于slate构建文档编辑器
Is it safe to open an account in the top ten securities app rankings in China
哈希表的前置知识---二叉搜索树
I want to know whether flush is a stock market? Is it safe to open a mobile account?
国际美妆业巨头押注中国
请指教同花顺开户选选择哪家券商比较好?手机开户安全么?
4. N queen problem








