不知道有没有人发过类似的文章,希望能听到大家的想法
假如你有一个SWF或者图像文件,别人即使下载下来了,也不能获得其中的内容,那么ByteArray或许能帮一下忙。
原理:
假设要加密的文件是a.swf,首先通过AS3修改a.swf的ByteArray,然后发送到PHP(当然也可以是其他语言),在后台生成一个新的
b.swf,这就是加密后的文件,别人如果下载下来打开,是无法观看的。如果想通过破解工具破解,那也是徒劳(因为这已经不是一个swf了)。
然后我们就可以在AS3里解析这个b.swf,将它还原成a.swf,这是通过URLLoader+Loader完成的,还是来看看代码吧
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(Event.COMPLETE,onLoaded);
urlLoader.load(new URLRequest('t1.swf'));
function onLoaded(evt)
{
var ba:ByteArray = urlLoader.data;
var bytes:ByteArray = new ByteArray();
for(var i=0;i<ba.length;i++)
{
bytes.writeByte(ba[i] + 13);//这里的13可替换为你想要的数字
}
//bytes.compress();
var request:URLRequest = new URLRequest ('http://127.0.0.1/today/t.php');
var loader: URLLoader = new URLLoader();
request.contentType = 'application/octet-stream';
request.method = URLRequestMethod.POST;
request.data = bytes;
loader.load( request );
}
PHP代码:
$fp = fopen( 'test.swf', 'wb' );
fwrite( $fp, $GLOBALS[ 'HTTP_RAW_POST_DATA' ] );
fclose( $fp );
解密:
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(Event.COMPLETE,onLoaded);
urlLoader.load(new URLRequest('test.swf'));//加密后的swf文件
function onLoaded(evt)
{
var ba:ByteArray = urlLoader.data;
var bytes:ByteArray = new ByteArray();
//trace(ba.length);
//-------------------解密
for(var i=0;i<ba.length;i++)
{
bytes.writeByte(ba[i] - 13);
}
//-------------------End
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onBytesLoaded);
loader.loadBytes(bytes);
}
function onBytesLoaded(evt)
{
addChild(evt.target.content);
}
分享到:
相关推荐
通过ByteArray来播放MP3通过ByteArray来播放MP3
将byteArray转变成Sound/Mp3
# PNG加密解密工具 此工具可以加密和解密PNG图片,保护您的隐私。 ## 加密 1. 选择要加密的PNG图片。 ...3. 点击“加密”按钮。...4. 保存加密后的PNG图片。...请注意,如果您忘记了密码,... encrypted_pixels = bytearray()
char bytearray string的区别. 详细介绍了其中的区别。学习 qt 和 c++ 必须搞懂的知识char bytearray string的区别.
项目的数据库
NULL 博文链接:https://wuxiubing.iteye.com/blog/1354181
9-slice Bitmap scaling by ByteArray. Very useful for GUI!!
通过PNGEncoder、JPEGEncoder对bitmapdata进行encode转换为对应图像格式的bytearray,这时会根据对应图像格式的压缩算法转换为编码图像的bytearray,如JPEGEncoder 类使用联合图像专家组 (JPEG) 压缩将原始的位图...
数据与ByteArray字节流共享,从而允许您通过调用ByteArray的构造函数来直接进行处理,这非常方便。 十进制值 该库还支持IEEE 754值,以防您需要使某些对象浮点数。 压缩和解压缩 ByteArray.js可以满足您的要求! ...
使用MD5对字符进行加密处理。 public MD5Test(String inStr1) { this.inStr = inStr1; try { this.mad5 = MessageDigest.getInstance("MD5"); } catch (Exception ex) { System.out.println(ex.toString...
byteArray,byteArray的妙用,Chapter 1 - The first bits,用二进制解决问题
import flash.utils.ByteArray; public class IDEA{ public var ory:ByteArray; public var ary:Array; public var dekey:Array; public var enkey:Array; public function IDEA() { ary=new Array()...
主要介绍了python string类型 bytes类型 bytearray类型,需要的朋友可以参考下
完整详细版Python全套教学课件 第02节 内置数据结构04 bytes和bytearray.pptx
今天小编就为大家分享一篇Python3之字节串bytes与字节数组bytearray的使用详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
使flash支持bmp格式的类文件 对BMP文件处理时,在合适位置加入以下语句即可: var bmd:BitmapData=BMPEncoder.decode(bmdData); var bmdData:ByteArray=BMPEncoder.encode(bmd);
有些时候我们不得不在自己的代码里写上密码,为了安全起见,我们可以为... b = bytearray(str(s).encode("gbk")) n = len(b) # 求出 b 的字节数 c = bytearray(n*2) j = 0 for i in range(0, n): b1 = b[i] b2
可以获取textEdit上的QString类型16进制数转换为ByteArray; 输入数据错误判断及提示; CRC16校验计算公式; 计算ByteArray的crc16结果; 结果转换为QString,并且每两位数据都需要增加空格展示; 输入清除功能; ...
犀牛字节数组 在Rhino JavaScript引擎中使用字节数组 注意 由该代码制成的字节数组可以与Java中的字节数组不同,但它似乎可以像Java字节数组一样完美地工作。...let b = ( new ByteArray ( size ) ) . init ( ) ;
功能: 支持AS3的ByteArray序列化对象的AMF格式编码、解码( readObject...支持解压还原LZMA算法压缩过的SWF文件(文件头三字节为:ZWS的 *.SWF文件)。 为方便想了解AMF格式及封包的坛友分析解码AMF数据资料使用。