文件加密助手V3.0强势回归~鱼币~~~
本帖最后由 学习编程中的Ben 于 2024-2-29 19:41 编辑文件管理器 + 私密内容加密器V3.0
https://fishc.com.cn/static/image/hrline/1.gifhttps://fishc.com.cn/static/image/hrline/1.gif
嘿嘿嘿,亲爱的鱼油们!时隔大概5个月,我的杰作 文件管理器 + 私密内容加密器 又重新回归啦~
上一次的作品中, dolly_yos2 这位鱼油指出:
来看一看,楼主的描述很吓人
所以说不要再把 base64 编码当作加密了啊!
base64 没有任何保护内容的能力,只是一种编码转换方式,不提供任何安全性
建议在折腾帐号登录服务器这样难以判断究竟有多少作用、能否起到效果的功能之前,最好先将最初的目标功能实现好
加密器怎么不能实现正规加密呢?于是,它的第三个版本就此出现,相比前两个,增加了一大截功能哦~
新增功能:
[*]RSA加密与解密(一种正规加密方式)
[*]可以自动刷新的行号
[*]切换软件主题色
看了介绍,大家一定对这个东西很感兴趣了吧~ 那就让我们进入正题吧!
1.效果展示
主界面:
菜单-->功能:
加密界面:
切换主题:
2.安装所需的库
为了防止被 @tommyyu @陈尚涵 这两个大佬说比较水,就简略一点啦~
这次要安装的库有点多,而且用几个容易安装失败,大家请耐心按照步骤安装哈{:10_275:}
要安装的库有:
[*]ttkbootstrap
[*]pyperclip
[*]logging
[*]Crypto
pip install ttkbootstrap
pip install pyperclip
pip install logging
pip install Crypto
如果先要安装的快一点,那可以在以上语句末尾加上{:10_309:} :
-i https://pypi.tuna.tsinghua.edu.cn/simple
3.RSA加密解密详解
一、RSA加密的特点及其原理
特点: RSA加密 是非对称加密非常著名的一种加密算法,何为非对称加密呢?
非对称加密
非对称加密算法中,有两个密钥:公钥和私钥。它们是一对,如果用公钥进行加密,只有用对应的私钥才能解密;如果用私钥进行加密,只有用对应的公钥才能解密。
非对称加密算法实现机密信息的交换过程为:甲方生成一对密钥并将其中一个作为公钥向其他方公开;得到该公钥的乙方使用该密钥对机密信息进行加密后发送给甲方;甲方再用自己的另一个专用密钥对加密后的信息进行解密。
它的原理其实很简单, RSA加密算法 本身基于一个挺简单的知识:
给出两个素数,将它们相乘,然后给出它们的乘积.
通过他们的乘积,得到这两个素数是极为困难的,所以RSA加密挺可靠的{:10_279:}
但是,如果能够解决位数极大的整数(比如几百位的整数)分解的快速方法,那么 RSA 算法将————轻易被破解。
不过,这实现并不简单,所以——放下心吧{:10_264:}
二、公钥和私钥的生成
首先呢,我们要准备两个大大的素数——一定要够大啊!,这里设他们为 p 和 q {:10_330:}
这俩素数的位数越多就越难破解,所以很多地方使用RSA加密算法都会将其转换为二进制,增加其破解难度!
我的代码中,就是将其转换为了1024位的二进制数,不过大部分操作都由 Crypto 这个库来实现的哟
2)设 n = p * q
3)计算 m = (p - 1) * (q - 1), 这里的 m 为 n 的 欧拉函数 ,想必很多鱼油不太了解欧拉函数,所以在此贴心附上讲解链接:https://oi-wiki.org/math/number-theory/euler/
PS:其实我不建议大家去理解 欧拉函数,因为,真的不容易懂,你只要了解他的定义就行了,别钻进去太深
3)找到一个数 e ,e满足 1 < e < m,e 与 m 互质
4)计算私钥d,计算 e 对于 m 的模反元素 d 。d 应满足:e * d ≡ 1 (mod m),就是 e 和 d 的乘积对 m 取余的结果为1
5)好啦,公钥和私钥出现了啦:(n, e) 为公钥,(n, d) 为私钥
三、加密
设要加密的内容为 X ,我们需要用公钥(上文的n, e)进行加密( X 要先转成数字形式,可以通过 ASCII码 或者 unicode 值), 再幂运算,然后取模计算出密文,其中 Y 就是密文:
四、解密
与加密类似,不过用的是私钥(上文的n, d).
五、关于程序的密钥
大家用我的程序进行 RSA加密 后,打开保存的密钥文件,会发现其中的内容并非数字,而是一串由字母、数字、符号组成的奇怪字符串!!!这是为什么呢?{:10_295:}
**** Hidden Message *****
注:部分内容参考他人文章,因为忘了
4.完整代码
VIP用户请自觉,可别白嫖啊~{:10_275:}
**** Hidden Message *****
评个分再走呗~{:10_297:}
@liuhongrun2022 @唐舞麟 @高山 @Ewan-Ahiouy @歌者文明清理员 @不二如是 @sfqxx @python爱好者. @Mike_python小
紫迹 发表于 2023-8-15 18:23
好的,是直接把密文内容粘贴到软件上,然后解密就行吗?
我试了一下,必须同时保存密钥和密文文件,然后再把密文内容用记事本打开复制内容到软件上,再上传密钥文件才能解密。如果只保存密钥文件,然后直接复制软件生成的密文内容而不保存文件,把密文内容粘贴到软件上面并上传密钥文件,则无法解密{:10_277:} 紫迹 发表于 2023-8-15 18:31
我试了一下,必须同时保存密钥和密文文件,然后再把密文内容用记事本打开复制内容到软件上,再上传密钥文 ...
我这个文件菜单栏第一个 文件 下面有一个打开功能,可以直接打开密文{:10_277:}
我这个文件本来就是一个记事本啊 @sfqxx @isdkz @Mike_python小 @zhangjinxuan @青出于蓝 @香蕉那个不拿拿 @编程追风梦 @陶远航 支持~ 支持 sfqxx 发表于 2023-8-10 22:14
支持
评分呗~{:10_254:} {:10_275:} ba21 发表于 2023-8-10 22:17
不是你评分啊QAQ ba21 发表于 2023-8-10 22:17
谢谢评分啦~我睡啦~ qpzc 支持 ba21 发表于 2023-8-10 22:17
资深鱼油3可以评5贡献的吗 qp 楼主可以申请精华了 智齿智齿!!! 顶上去!顶上去!!{:10_257:} 支持 {:10_279:}{:10_279:}{:10_279:} {:10_266:}{:10_266:}{:10_266:}