一张图片能隐含千言万语之隐藏你的程序代码

life我爱红太狼

life我爱红太狼

2016-02-19 12:34

今天图老师小编要向大家分享个一张图片能隐含千言万语之隐藏你的程序代码教程,过程简单易学,相信聪明的你一定能轻松get!
我最近开发了我的第一个网页游戏:一个HTML5的视频智力游戏。开发的过程很有趣,我喜欢编程,但当实现了游戏逻辑后,我有了一个有趣的想法:为什么不想个办法把代码隐藏起来?起初我想到的是一些很简单的做法,比如禁止上下文菜单,以防右键点击时可以查看页面源代码。但这毫无意义,右键菜单不能用,人们仍然可以通过键盘快捷键或菜单栏里的查看源文件来观看源代码。

一张图片能隐含千言万语

这依赖于图片的体积。但我决定要把源代码加密存放到一张图片里。HTML5的画布(canvas)组件很适合干这种事情,因为它支持针对图像像素的操作。一个像素由四个值(通道)来表示:红,绿,蓝和alpha通道。它们的值的分布范围是从0到255。我的Javascript代码就是一个个的字符,每个字符都有一个ASCII对应值。ASCII值的范围也是0-255,所以,我想做的是,遍历画布上的每个像素,给每个像素设置3个代码字符的ASCII值作为它的RGB值,你可以通过charCodeAt函数轻松的取出这些字符。

代码如下:

.charCodeAt(0)

生成的是一张色彩斑斓、很小的图片,它就是我的程序代码看看吧:

解码的时候,我只需要把这个图片画到画布上,遍历像素点,取出r,g,b值所代表的字符:

代码如下:

String.fromCharCode(code)

把它们连接成一个大的字符串,这就是你的代码了可执行的代码。

这样就能保护你的源代码了吗?

其实不能一个有经验的(甚至没有经验的)程序员仍然能够知道如何去解码图片,取出里面的代码,但我想这是能防止那些怀着不良商业目的人偷盗你的的代码的第一步措施而那些能够想出如何解码的程序员(大部分)都不是来剽窃的

这种方法的主要缺陷
这种技术只能应用在支持HTML5画布(canvas)技术的现代浏览器里,IE6、IE8 里肯定是不行的。甚至有些现代的浏览器对于图片的alpha通道的编码也有支持问题,所以,每个像素点你只能放3个字符一个100×100大小的图片可以存放3万个文本字符。

你还有其它简单的能防止别人拷贝你的代码的方法吗?我们当然可以把字符进行加密,但如何保证你的解密步骤能不被人轻易的破解呢?告诉我你的想法吧!
展开更多 50%)
分享

猜你喜欢

一张图片能隐含千言万语之隐藏你的程序代码

Web开发
一张图片能隐含千言万语之隐藏你的程序代码

购物网站设计:一张好图片胜过千言万语

平面设计 海报设计 广告设计 画报设计 签名设计 服装设计 名片设计 画册设计 版式设计 商标设计
购物网站设计:一张好图片胜过千言万语

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

千言万语汇成一句简单旳话,我爱你胜过爱自

电脑入门
千言万语汇成一句简单旳话,我爱你胜过爱自

一段采集程序代码

Web开发
一段采集程序代码

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

JSP的login程序代码

Java JAVA基础
JSP的login程序代码

jQuery 点击图片跳转上一张或下一张功能的实现代码

Web开发
jQuery 点击图片跳转上一张或下一张功能的实现代码

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

设为首页 加入收藏的js代码

设为首页 加入收藏的js代码

WPS文字如何给段落添加双波浪边框

WPS文字如何给段落添加双波浪边框
下拉加载更多内容 ↓