开源一个图片加密算法

2021-09-23 21:41:02 +08:00
 jiangwei2222

GitHub 地址:

https://github.com/Jinnrry/Jencryption

特点

加密前后均为图片格式且加密后图片的尺寸与加密前保持一致。

目前提供了 golang 版本的 api 以及 js 版本的 sdk

加密 Demo:

加密前: 加密后:

有啥用?

1 、反扒(比如我前公司,核心资产就是各个景区的高清图片,放出来很容易被扒走)

2 、盗链 (将自己的私有图片加密后放到公开的 cdn 上,不怕对方知道图片内容,比如使用新浪 cdn 发 1024 [狗头])

3 、防盗链(图片都加密了,别人盗过去也不知道杂用)

4 、用于在公开论坛传输一些不符合社会主义核心价值观的图片(比如在 V 站开车[狗头] )

使用方法:

1 、使用编译好的二进制文件加解密

加密当前文件夹内全部图片 Jencryption encrypt [密码]

加密指定文件夹 /图片 Jencryption encrypt [路径] [密码]

解密当前文件夹 Jencryption decrypt [密码]

解密指定文件夹 /图片 Jencryption decrypt [路径] [密码]

2 、使用 js sdk 在你的网站接入

<script src="/js/md5.min.js"></script>
<script src="/js/core.js"></script>
<script>
DecryptAllImage("你的密码")  // 解密页面上全部图片
// DecryptImage(document.getElementById("img"),"你的密码")  // 解密单张图片

</script>

3 、在线加解密工具 https://xjiangwei.cn/Jencryption/

有谁用?

目前在我自己的博客( https://www.xjiangwei.cn)文章中已经全部接入图片加密

目前缺陷

1 、加密性能不够好,加解密过程有大量 hash 运算。另外加密后图片体积会变大很多

2 、加密后的图片太丑了

3 、加密后的图片不能被压缩,一旦图片出现了任何像素点变化就凉凉了

4 、目前 js sdk 只能处理 img 标签中的图片,css 中的图片不能处理

5177 次点击
所在节点    分享创造
28 条回复
zhw2590582
2021-09-24 08:18:43 +08:00
而且完全可以用 web worker 解密
villivateur
2021-09-24 08:36:34 +08:00
如果被压缩了之后,还能解密吗?
cpstar
2021-09-24 09:34:10 +08:00
想到的一些思路不知道对不对啊,不针对 LZ 的算法:
首先,肯定是对称加密,然后服务器给客户端的是加密内容,客户端解密再给浏览器渲染;
其次,既然是对称加密,只要密码算法和密钥知道,就可以随意解密;
最后,密码算法肯定要传给客户端,所以不可能 100%保密,那么能否在密钥上做文章,比如服务器端动态加密以及动态密钥?
另外,浏览器既然已经渲染了,是否能够控制浏览器不得保存渲染出来的版本?或者在浏览器端屏幕拷贝(截图)能否有方案处置?
cpstar
2021-09-24 09:36:28 +08:00
关于加密算法被客户端破解的可能,能否使用 webassembly 增加破解难度?
jiangwei2222
2021-09-24 10:47:17 +08:00
@villivateur 不能


@cpstar 在客户端使用场景来说,不可能 100%保密
vazo
2021-09-24 17:41:37 +08:00
感谢楼分享,思路值得学习,支持一下.
OOKer
2021-09-26 13:01:27 +08:00
好巧,我最近也在研究图像加密。
这个研究方向应该叫“图像伪造”,已经有很好的加密算法了。
xieqiqiang00
2021-09-29 14:29:06 +08:00
图片转 jpg 就无效了,看起来被压缩过就不能解密了?
不是很实用,那不如像上面讲的直接当文件压缩加密算了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/803754

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX