不知道有没有人发过类似的文章,希望能听到大家的想法
假如你有一个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文件,我们首先需要创建一个包含MP3文件的SWF文件,然后使用`Loader.loadBytes()`方法来加载这个SWF文件。 ### 创建包含MP3的SWF文件 为了演示如何将MP3文件嵌入到SWF文件中,我们可以...
在Flex编程中,有时我们需要处理音频数据,例如从网络接收或者本地存储的字节数组(ByteArray)中读取音频信息,并将其转化为可播放的声音(Sound)。标题"flex byteArray to sound"表明我们要讨论的是如何将一个...
在机器视觉应用中,数据通常是图像或视频帧,这类数据以二进制形式存在。因此,`bytearray` 或 `char`数组经常用于处理像素数据的读取、处理和传输。在Qt和C++中,可能会使用`QByteArray`或`std::vector<char>`来...
这可能意味着ByteArray数据包含了身份证的扫描件或图像,Flex客户端可能有一个功能用于读取身份证,然后将这些信息转换为ByteArray进行上传。 综上所述,这个知识点涵盖了Flex客户端与Struts2服务端的交互,特别是...
通过将Bitmap转换为ByteArray,我们可以更有效地进行位图的缩放、裁剪等操作,尤其是在处理大量或大尺寸图片时,可以降低内存消耗。 实现9-slice Bitmap的ByteArray缩放过程通常包括以下步骤: 1. **Bitmap到...
# PNG加密解密工具 此工具可以加密和解密PNG图片,保护您的隐私。 ## 加密 1. 选择要加密的PNG图片。 ...3. 点击“加密”按钮。...4. 保存加密后的PNG图片。...请注意,如果您忘记了密码,... encrypted_pixels = bytearray()
1. 文件类型识别:许多文件类型的标识信息都存储在文件的开头几个字节中,如JPEG图像的魔数(0xFF, 0xD8)或PNG图像的魔数(0x89, 0x50, 0x4E, 0x47)。通过读取并分析byteArray的初始部分,我们可以快速识别文件...
这样,我们可以先将低版本SWF的二进制内容读取到`ByteArray` 对象中,然后使用`loadBytes()` 加载这个`ByteArray`。 接下来,为了使低版本SWF的行为符合AS3环境,`ForcibleLoader` 可能会修改加载的SWF头部信息,将...
代码片段中出现了一个简单的加密函数`compress`,该函数通过遍历传入的`ByteArray`(字节数组),并将其与一个固定的字符串`key`中的字符ASCII值相加,从而实现了简单的加密过程。这种加密方式相对简单,主要是为了...
项目的数据库
接着,使用Cipher类进行加密和解密操作,通过init方法设置工作模式(如ECB、CBC等)和密钥,最后调用doFinal方法处理数据。示例代码如下: ```java import javax.crypto.Cipher; import javax.crypto.KeyGenerator;...
综上所述,通过在VB6中创建包含DES和RSA两种加密算法的ActiveX控件,不仅能够有效简化加密功能的开发过程,还能提高数据的安全性和应用程序的整体质量。这种方法特别适用于那些希望快速集成加密功能而不必深入了解...
在JavaScript中,Base64的加密和解密是通过特定的库或者自定义函数实现的。本文将深入探讨Base64编码原理,JavaScript中的实现方式,以及如何封装一个Base64的加密解密工具。 Base64编码的基本原理是将每3个字节...
这可以通过从本地文件、相机输入或其他来源获取图像来完成。 ```actionscript var bitmapData:BitmapData = new BitmapData(image.width, image.height, false, 0); bitmapData.draw(image); ``` 这里的`image`...
收到服务器返回的加密或解密后的ZIP数据后,可以使用AS3的`ByteArray`类进行进一步处理,如保存到本地或展示给用户。 为了提高安全性,还可以考虑使用HTTPS协议进行通信,以保护数据在传输过程中的安全。同时,密钥...
数据与ByteArray字节流共享,从而允许您通过调用ByteArray的构造函数来直接进行处理,这非常方便。 十进制值 该库还支持IEEE 754值,以防您需要使某些对象浮点数。 压缩和解压缩 ByteArray.js可以满足您的要求! ...
通过PNGEncoder、JPEGEncoder对bitmapdata进行encode转换为对应图像格式的bytearray,这时会根据对应图像格式的压缩算法转换为编码图像的bytearray,如JPEGEncoder 类使用联合图像专家组 (JPEG) 压缩将原始的位图...
### MD5加密技术详解 MD5(Message-Digest Algorithm 5)是一种广泛使用的散列算法,主要用于数据完整性检查。在网络安全、密码存储、文件校验等领域有着不可替代的作用。其核心功能是将任意长度的数据输入转化为一...
使用MD5对字符进行加密处理。 public MD5Test(String inStr1) { this.inStr = inStr1; try { this.mad5 = MessageDigest.getInstance("MD5"); } catch (Exception ex) { System.out.println(ex.toString...
- 打开或创建图像文件,加载到 `Image` 对象。 - 创建一个 `MemoryStream` 对象,用于存储图像的字节流。 - 使用 `Image` 对象的 `Save` 方法将图像保存到 `MemoryStream`,指定保存的格式,如JPEG、PNG等。 - ...