吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1595|回复: 6
收起左侧

[Python 转载] python之初学RAS库实现:图片加密,解密

[复制链接]
rangersxiaoyan 发表于 2022-7-13 16:00
本帖最后由 rangersxiaoyan 于 2022-7-13 16:01 编辑

RSA实例1.1生产秘钥.py

[Python] 纯文本查看 复制代码
import rsa
import time

v_秘钥强度 = 128
v_开始时间 = time.time()
(v_公钥, v_私钥) = rsa.newkeys(v_秘钥强度 * 8)
print('耗时:', time.time() - v_开始时间)
with open('公钥.pem', 'w+') as f:
    f.write(v_公钥.save_pkcs1().decode())
with open('私钥.pem', 'w+') as f:
    f.write(v_私钥.save_pkcs1().decode())



RSA实例3.1加密图片.py

[Python] 纯文本查看 复制代码
import rsa
import time

with open('公钥.pem', 'r') as f:
    v_公钥 = rsa.PublicKey.load_pkcs1(f.read().encode())

with open(file='原始图片.jpg', mode='rb') as f:
    v_需要加密的数据 = f.read()
v_秘钥强度 = 128  # 这里128代表是字节,x8就是位。这里的长度1024位
v_分割长度 = int(v_秘钥强度 - 11)  # 实际加密可以字节要-11,剩下的才能正常使用。
v_数据长度 = int(len(v_需要加密的数据))  # 数据长度就是图片的长度

if v_数据长度 % v_分割长度 == 0:  # 求余数是否为0,决定分割份数是否+1
    v_分割份数 = int(v_数据长度 / v_分割长度)
else:
    v_分割份数 = int(v_数据长度 / v_分割长度 + 1)

start = time.time()
v_加密的数据 = bytes()
for i in range(v_分割份数):
    a = i * v_分割长度
    b = a + v_分割长度
    v_密文 = rsa.encrypt(v_需要加密的数据[a:b], v_公钥)
    v_加密的数据 = v_加密的数据 + v_密文

print('加密耗时:', time.time() - start)

with open(file='加密图片', mode='wb') as f:
    f.write(v_加密的数据)


RSA实例3.2解密图片.py

[Python] 纯文本查看 复制代码
import rsa
import time

with open(file='私钥.pem', mode='r') as f:
    v_私钥 = rsa.PrivateKey.load_pkcs1(f.read().encode())

with open(file='加密图片', mode='rb') as f:
    v_加密的数据 = f.read()
v_秘钥强度 = 128
v_数据长度 = len(v_加密的数据)
v_分割长度 = int(v_秘钥强度)
v_分割份数 = int(v_数据长度 / v_分割长度)
start = time.time()
# 解密
v_解密的数据 = bytes()
for i in range(v_分割份数):
    # print(i)
    a = i * v_秘钥强度
    b = a + v_秘钥强度

    v_解密明文 = rsa.decrypt(v_加密的数据[a:b], v_私钥)
    v_解密的数据 = v_解密的数据 + v_解密明文

print('解密耗时:', time.time() - start)
with open(file='解密图片.jpg', mode='wb') as f:
    f.write(v_解密的数据)



在实验中发现,需要加密的数据过长,就会加密失败。所以需要对数据切片分割以此来正常加密数据,解密也要分割数据解密。
最后就能得到原始数据。注意秘钥长度不能太长,不然解密时间能让你怀疑人生。
提供研究专用图片
https://pic.kissgoddess.com/gallery/27559/38194/s/0.jpg



免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

Event 发表于 2022-7-13 16:43
楼主是易语言转归的吧。。。
smileat2000 发表于 2022-7-13 16:14
 楼主| rangersxiaoyan 发表于 2022-7-13 16:29
samaerhan99 发表于 2022-7-13 16:42
活到老学到老
新手小弟 发表于 2022-7-13 16:54
学习下,谢谢LZ分享
blawhickte 发表于 2022-7-14 00:31
中文变量名, 真的好别扭, 要不回去写E吧
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-19 19:53

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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