瞎折腾:把JS,CSS任意文本文件加密成一张图片«张鑫旭鑫空间

这张64*64见方的图片实际上包含了一段4K大小的JavaScript脚本的信息。

加解密的原理如下:

加密的图片生成,解密的图片信息读取,都是借助canvas实现的。

canvasAPI中的putImageData可以用来生成图片;canvasAPI中的getImageData可以用来读取图片中的像素信息。

对于通过web生成的数据,我们处理相对简单一些,因为都在同一个web平台上。

如果是本地开发的源代码想要加密呢?

则需要借助本地工具对这些文件进行图片格式转换,对于前端开发同学而言,可以自己写一个node.js小工具。

下面这段node.js代码就是我自己写自己用的,大家有兴趣可以作为参考:

file2Img('colorful-min.js');然后执行:

本地实现麻烦之处看代码量,似乎觉得本地文件转图片也是洒洒水的程度。

我自己折腾了好几个小时,完全按照官方的步骤,一个个的安装,甚至为了安装node-gyp,还下载了占用了3.29G的MicrosoftVisualC++BuildTools,结果还是狗屎。

什么binding.gypnotfound,c2373__pfnDliNotifyHook2之类错误。

我跟大家讲,官方的安装教程,很不靠谱,漏了一个非常重要的东西。

第1步并不是安装node-gyp,而是升级Node.js到最新版。

然后,我使用的是2.0的用法,默认安装还是1.x版本,因此,canvas包安装时候,要走下面:

npminstallcanvas@next三、解密图片并执行实际案例下面这段JS可以对图片进行解密并直接执行其对应的JavaScript脚本:

varjsParseImg=function(l,g){vare=document.createElement("img"),f=document.createElement("canvas");e.onload=function(){f.width=this.width;f.height=this.height;vara=f.getContext("2d");a.drawImage(this,0,0,this.width,this.height);for(vara=a.getImageData(0,0,this.width,this.height),e=a.data.length,h=[],b=0;b

jsParseImg(imgurl,callback);其中,imgurl只图片的URL地址,可以是普通协议地址,也可以是base64地址,甚至是Blob地址;callback为解密并解析成功后的回调。

但,这并不妨碍我们执行:

jsParseImg('colorful-min.png',function(){colorfulBackground({container:document.getElementById('container'),animation:false,size:[400,800]});});来实现我们想要的效果。

想必那些喜欢扒代码的伸手党,看了这个页面之后,一定是一脸懵逼。

有小伙伴可能会担心,加密和解密的东西呀,最宝贵的就是算法了,你这里基本上原封不动就暴露了,那基本上就没啥用了呀。

这个其实大可不必担心。

本文所展示的颜色处理只是抛砖引玉,属于最基本最简单的,从头往后线性的颜色绘制。

如果在实际项目中应用,肯定就不会想这么简单的策略了。

颜色信息的起点可以从中间,圆环的形式;或者逐行绘制的方式。

或者更近一步,每一个像素点藏更多的信息。因为字符最大Unicode编码是65535,但是一个像素点RGBA所能包含的数值范围信息是256^4,也就是4294967296,完全不是一个数量级的。如果采用像素通道组合方式,一个像素点藏2个字符信息,是完全可行的。一个像素通道范围0~255,其中两个组合,则范围大小256*256为65536,排除掉认为是无效像素信息的0,0组合正好涵盖65535。

这样,图片的尺寸可以进一步缩小。

本文展示的JS和生成图片尺寸对比为:3.94KVS5.33K。静态资源成本是有所增加的,如何权衡,还要看大家自己。

所以标题才有“瞎折腾”字样。自己玩一玩试验试验,实际上实际开发的估计很少使用。但是用的少,并不一定没有价值,说不定遇到特殊项目特殊场景,就能高光一把。

THE END
1.长沙刘瑶设计作品刘瑶联系方式刘瑶的简历刘瑶的空间 刘瑶 普通会员其它 给我留言委托设计 擅长设计: 设计师简介:刘瑶,女,98年9月生人,于2020年6月份毕业于湖南省长沙市长沙师范学院。同年7月份于深圳从事室内设计师助理岗位一年,目前处于转设计师瓶颈期,室内装饰行业从业一年半。详细介绍>>https://my.a963.com/3403904/
2.68Design68Design是国内领先的设计师远程工作平台,拥有300万+设计师,为雇主提供网站设计、APP、小程序、LOGO设计、包装设计、电商详情页、插画、摄影等优质人才服务。雇主远程雇佣设计师,在线考勤办公,用人成本节省50%。http://liuminna.68design.net/
3.m.zcool.com.cn/work/ZNzA1Nzg0NDg=.html蜡 8鴽韝锅Ve*7U聇 )  碍 痸戫讫 抈鹵<> ?8鲐 ?https://m.zcool.com.cn/work/ZNzA1Nzg0NDg=.html
4.刘筱2024年12月05日 17:41恭喜170***7850作品备案用户:图片作品/其他图片作品 【简易图标设计分享】 已成功备案(备案号:A20241205054178719) 2024年12月05日 17:36恭喜136***4648作品备案用户:图片作品/其他图片作品 【《疯狂斗地主》部分典型动效】 已成功备案(备案号:A20241205053692808) 2024http://www.333cn.com/designer/32923/
5.「刘++」的个人主页这是「刘++」的花瓣个人主页,TA有62个画板,427个采集,9个喜欢。https://huaban.com/pef6tpucpg/
6.Midjourney优设网Midjourney频道,Midjourney是一款超人气的AI绘画工具。本话题专注分享Midjourney关键词、Midjourney趋势、Midjourney应用、Midjourney教程。Midjourney采用AIGC技术,能够将文字转化为图像,在艺术和设计领域扮演重要角色。 推荐话题:AIGCAI绘画提示词材质风格代码 https://www.uisdc.com/tag/midjourney
7.Liu的视频作品集个人主页专辑介绍片中职务导演/摄影/剪辑 分享助力推广 播放:107 人气:18 时长:02:54 【剧情片类】《岁月因你而暖》 剧情短片-家庭 剧情短片-儿童 片中职务导演/摄影/剪辑 分享助力推广 播放:437 人气:90 时长:09:32 【剧情片类】《茧》 剧情短片-励志 剧情短片-家庭 片中职务导演/摄影/剪辑 分享助力推广 播放:423 人https://www.xinpianchang.com/u12147869
8.[爱你]给大家分享一组分镜式构图插画,来来自优设AIGC#设计小课堂# ?收藏 60 3 ?84 评论 o p 同时转发到我的微博 按热度 按时间 正在加载,请稍候 微博知名互联网账号 微博知名设计美学博主 ü 简介: 优设网已运营13年,国内知名设计师平台。 每日更新内容全面及时 原@优秀网页设计 T 友情链接 设计师https://weibo.com/1773655610/O44Jjt23r
9.PS怎么随意切图3d溜溜设计问答平台为广大设计师们提供各种PS怎么随意切图问题解答,3d溜溜素材问答平台汇聚全球各地的设计师、名师名司、设计爱好者等设计灵感和经验,迅速为您解决PS怎么随意切图的困惑。https://www.3d66.com/answers_relation/relation_3519557_92.html
10.优设造视&8H2023年度双11视觉升级电商设计作品公司出品:优设造视品牌中心 整体监制:阿秋 创意总监:图层叔 项目主设计师: 键键 建模渲染:Summer 精修:233 商务总监:婷婷 商务经理:夭夭 项目总结呈现:键键 版权归属:趣睡科技* 一切文案、内容、图示均以线上版本为准,此处作品仅作交流展示,不负任何法律责任 造视品牌中心是一家专注于品牌差异化定位的品牌体系打造机构http://tcy.ink/tcase-115815.html
11.站长当心,小心可信网站认证陷阱据53快服论坛爆料:百度第三方公司疑似利用网站认证服务收取费用。当你看到百度中有附图认证标志的,千万别提交申请!!号称免费的可信网站认证,是北龙中网提供的百度第三方应用,提交申请后,你会发现网站被K了,紧接着北龙中网的销售人员会多次打电话给你,说交15000元即可恢复百度收录。 https://lusongsong.com/blog/post/737.html
12.微博动图 转发 评论 赞 逐梦_Sea 2023-3-13 来自 小米11 Pro 转发微博 @photoshop资源库: #资源君# 不同尺寸下 Banner 的设计和布局万一哪天需要呢,去收藏夹吃灰吧,转需~#微博公开课# 转发 评论 赞 逐梦_Sea 2023-3-5 来自 小米11 Pro 转发微博 @photoshop资源库: #资源君# 够用一年!2023 年有这https://m.weibo.cn/u/2948389001