鱼C论坛

 找回密码
 立即注册
查看: 5153|回复: 6

[已解决]如何对png图片文件加密呢

[复制链接]
发表于 2022-11-3 23:21:41 | 显示全部楼层 |阅读模式
60鱼币
请问如何对png文件进行加密呢?
希望实现功能如下:
1.设置初始密码,读取时,要先输入正确的密码才能正常读取
2.该文件进行两次传输后(意思是我把这个文件发给别人,或者从一个目录转移到另一个目录),密码失效。
3.密码失效可以是变更初始密码、变更密码(明文)的密文,或者直接损坏文件也行。

主要目的是防倒卖

我也不知道功能2到底能不能实现,
所以如果只能实现功能1也麻烦大佬评论下吧,
附上详细注释最好了~

最佳答案
2022-11-3 23:21:42
import numpy as np
from PIL import Image
im1 = Image.open('这里用你的图片路径')
im2= np.array(im)
 
size1=im2.shape
print(size1)
code=np.load('code.npy',allow_pickle=True).item()
slove_code=np.load('solve_code.npy',allow_pickle=True).item()
#加密图片
print(code)
new_array=np.zeros(size1)
k_1=0
print("开始")
for i in range(0,size1[0]):
    for j in range(0,size1[1]):
        for k in range(0,size1[2]):
 
             new_array[i, j, k] =code[im2[i,j,k]]

im3=Image.fromarray(np.uint8(new_array))
im3.show()
im3.save('flag.jpg')
 
 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-3 23:21:42 | 显示全部楼层    本楼为最佳答案   
import numpy as np
from PIL import Image
im1 = Image.open('这里用你的图片路径')
im2= np.array(im)
 
size1=im2.shape
print(size1)
code=np.load('code.npy',allow_pickle=True).item()
slove_code=np.load('solve_code.npy',allow_pickle=True).item()
#加密图片
print(code)
new_array=np.zeros(size1)
k_1=0
print("开始")
for i in range(0,size1[0]):
    for j in range(0,size1[1]):
        for k in range(0,size1[2]):
 
             new_array[i, j, k] =code[im2[i,j,k]]

im3=Image.fromarray(np.uint8(new_array))
im3.show()
im3.save('flag.jpg')
 
 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-3 23:44:28 | 显示全部楼层
本帖最后由 suchocolate 于 2022-11-3 23:46 编辑

我用过一个看视频和看pdf的软件。
老师发的视频和pdf大家都可以传,但是普通软件都打不开,只能用老师发的播放器打开看,有pc版和安卓版,功能相同,都需要有网络。
第一次启动播放器,会生成一串机器码,发给老师。老师在他服务器上生成对应的账号和密码,然后发给你。
你输入到播放器,就能看视频或pdf了,后续观看只需要输入账号密码。
账号密码会绑定机器,如果电脑重装,或者硬盘换过,账号密码就会失效,账号密码给别的电脑无法使用。
播放器观看时还会检测你有没有用录屏软件或截屏功能,如果有,它会拒绝播放和限制你使用截屏功能。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-3 23:55:29 | 显示全部楼层
可似乎这样搞,那你这个png图片,就变成不是png图片了的说。。  图片是可以加密,但一般是把原图片 通过某种加密算法 变成 另外一张图片。
你这要验证密码,又要防倒卖,更像是一个保护程序,而不是简单的图片加密(而且还限定是png图片)。。
所以,更可行的办法,应该是: 打包成某个程序,而不是某张图片。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-21 16:22:52 From FishC Mobile | 显示全部楼层
你说的需求需要配合客户端,只能用你写的客户端(或者解密程序)配合账密打开图片,没有单独对图片加密而又不需要客户端的办法。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-21 19:34:55 | 显示全部楼层
本帖最后由 jackz007 于 2022-11-21 21:21 编辑

        你想让 png 文件知道自己被复制了几次,从而,决定是否让密码失效?告诉你,no way !!!除非,你可以揪住头发把自己拎起来。

        虽然别人可能无法解密你的 png,可是,由于你的数据是标准图像格式,从解密到使用系统功能进行显示的过程中,别人是有办法截取到整张图片完整数据的。有了这个数据,你的加密 png 是不是就是笑柄一个了?

        你实际上需要的是自己设计的图像格式(非标准)+ 自己设计的图像显示程序,而不仅仅只是加了密的一个 png,你可以考虑在程序上设置机关,进行各种条件判断和使用限制,这样,即使别人截取到了你的图像数据,但是,因为是非标准的,也无法进行使用,根本无法摆脱对你的程序的依赖,也就只好受制于你了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-24 11:15:43 | 显示全部楼层
本帖最后由 jackz007 于 2022-11-24 17:38 编辑

       我曾经碰到过一个拿来卖Q的教人炒股的视频,不要说文件加密了,人家采用的是虚拟文件系统,一套下来 16 GB 的 U 盘好几个,JG 据说好几 K,用资源管理器打开 U 盘,上面什么都没有,就一个他们提供的 exe 程序,只有通过这个程序才能浏览和播放 U 盘里的视频文件。我发现这个系统存在一个漏洞,视频文件居然是用 Windows 系统指定的关联程序进行播放的,这就告诉了我们两个基本事实,一,视频文件是正常格式,只要能弄出来,播放不成问题;二,通过他们的 exe 启动运行的程序可以正常访问 U 盘上的文件。我想,只要能让这个 exe 打开一个文件资源管理器,所有的问题不就迎刃而解了?那么,问题的关键是,如何才能让这个 exe 运行我们想让它运行的程序呢?也许,可以对视频播放关联的程序做点工作,于是,我就找了一个第三方的文件资源管理器,假冒了那个 Windows 关联的视频播放器,然后,播放 U 盘上的视频文件,不出所料,第三方的文件资源管理器如约启动,果然,U 盘上所有的秘密瞬间荡然无存。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-15 16:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表