当前位置: 首页 > news >正文

RSA的理解运用与Pycharm组装Cryptodome库

1、RSA的来源

RSA通常指基于RSA算法的密码系统,令我没想到的是,其名字的来源竟然不是某个含有特别意义的单词缩写而成(比如PHP:Hypertext Preprocessor(超文本预处理器)),而是由1977年提出该算法的三个歪果仁的姓氏首字母这么很随意的拼接起来的(Ron Rivest、Adi Shamir和Leonard Adleman),可它却是首个既能用于加密又能用于数字签名(这个还不懂什么是签名,书上是这么说的,反正不是真的 签名)的非对称加密算法

2、RSA算法的原理

RSA算法基于大数分解的数学难题,大概原理如下:

<1>密钥生成

·生成大质数p和q

选择两个大素数(我做题遇到的通常是1024位的)p和q

·计算公共模数n

另有一个数(通常叫做模数)n(2048位),计算n=pxq

·计算欧拉函数

欧拉函数f(n)(字符fai打不出来)或phi(值钱啊做题遇到过),f(n)=(p-1)(q-1)

·计算公钥e

存在一个整数e(通常叫公钥),满足1<e<f(n)  (通过伪随机数生成器生成)且gcd(e,f(n))=1即两个数的最大公约数为1(gcd为欧几里得算法),这里e的选取是很容易的,因为所有大于p和q的素数都可用

·计算私钥d

计算d(私钥),使得dxe=1(且是恒等于) mod f(n)  移项后dxe mod f(n)=1也一样的。

解密的私钥d满足dxe=kf(n)+1(其中k是大于等于1的整数)所以,只要知道e和f(n),则很容易计算出d

<2>加密

使用公钥(e,n)加密消息m:c=m**e(m的e次方)mod n 其中c为密文

<3>解密

成功生成密钥后,只有接收者本人拥有私钥(d,n),然后即可通过公式进行RSA解密。

使用私钥(d,n)解密密文c:m=c**d(c的d次方) mod n(m表示解密后的明文,c表示待解密的密文)

3、RSA的运用

RSA算法大致广泛应用于以下领域:

<1>数据加密

用于加密敏感信息,如电子邮件、文件等等

<2>数字签名

用于验证消息的真实性和完整性

<3>SSL/TLS协议

用于保护网络通信,如HTTPS

<4>身份认证

用于验证用户或设备的身份,如智能卡、VPN等

4、RSA的安全性

其实RSA完全依赖于大数分解的难度(做题通常以分解n为突破口)。随着现在计算能力的提升,密钥长度需不断增加才能一定程度的保持安全性(像做题很容易找到工具分解n,即使密钥是1024位,我就发现不是很复杂的RSA把附件往AI那一扔也能跑出来,当然不建议这么做,因为啥也学不到)目前,网上公认2048位或更长的密钥被认为是安全的

5、RSA的优点与缺点

<1>优点

安全性高,基于数学难题

支持加密和数字签名

<2>缺点

计算量太大,速度较慢

密钥长度较长,存储和传输开销大

总之RSA算法是现代密码学呢基础,广泛应用于数据加密、数字签名等领域。尽管存在计算量大等缺点,但其高安全性使它在信息安全中占据重要地位(ctf中crypto方向也很常见)

这里我在做一题RSA时运用了pythoncharm运行代码,顺便学到了pycharm的安装与更新还有其中crypto dome库的安装

6、pycharm的运用

关于我的python和idle总是运行不了这个事在很多地方找了解决办法,但貌似并没用,最后直接把我的python系统直接卸载“从头来过”,并在网上得到了关于python软件包的组装,一步一步安装了近三个小时才达到正常使用的地步(包括库的install和换源换背景等统统学了个遍)

关于pycharm的下载及安装我就不写了,(安装的时候也忘了截图)因为网上有很多教程,都大同小异,我主要想记下的是我自己出现的感觉比较棘手和浪费时间的问题

<1>国内源的无法查找与换源

这里我卸载了重新装以后按教程新建了后缀名为.ini的国内源网站址,但在install crypto dome库时,报错国内网(douban)查找不到相关的库,这就很难办了

我一直以为可能是安装语句不正确的原因,在网上和AI那里找了各种各样的语句执行install命令,但最后发现报错还是一样(这里忘了截图,其实也没必要),于是我突然想到了我建的那个.ini文件夹里的网址,随即立即打开教程里给的国内网(豆瓣)复制到firefox里,发现果然打不开

所以说问题就出在了这个网址上,我的理解是可能pycharm将这个网址作为后端数据库,需要执行什么样的命令就从这个网站调取,既然这个网站访问不了了那install命令自然执行不了,也就找不到crypto dome库了(这么理解也不知道对不对)

既然这样,那我想了想能不能换个源站,可以用的那种...

于是上AI一查,的确有,阿里的华为的,然后发现内个用不了的douban也在,好像就有点理解怎么个事了,应该pycharm这款应用对应的国内网就是这几个

然后果断换了华为的,继续install,这次总算不像之前报错了,但,,,还是在报错

这我英语也不好,手机翻译了一下

所以意思就是我的pycharm也过期了,然后又找升级的口令

最后找到命令在终端里面升级

终于,几经辗转,这次install 终于成功了

最后自然是成功的获得了这题RSA算法的flag

诶我这时候有个微妙的感觉,成功的喜悦似乎不仅仅在获得flag上,还有很大一部分是经过我这么久的探索然后解决了让我困惑和棘手的问题 尽管是小问题

因为之前更多的是看别人怎么做自己就怎么做的被牵着鼻子解决,比如之前用的app都是下载安装好就什么工具都可以用,但这个组装crypto,如果一上来就有人教,而不去想,虽然花费的时间要少很多,但是下次同样的问题定然还要再到网上找一遍,虽然现在的条件不难但很麻烦

别的不说,光对命令理解了的话印象都会更深刻

比如这里终端升级python的命令

pip install --upgrade python

pip是python的包管理工具,install安装,upgrade升级,前面加两个--,最后接上python

还有安装crypto dome库就更好记了

pip install pycryptodome

前两个单词一样的,后面拆开就是py crypto dome

这样很好记,就算忘了下次再查一下包能记住的

相关文章:

RSA的理解运用与Pycharm组装Cryptodome库

1、RSA的来源 RSA通常指基于RSA算法的密码系统&#xff0c;令我没想到的是&#xff0c;其名字的来源竟然不是某个含有特别意义的单词缩写而成&#xff08;比如PHP&#xff1a;Hypertext Preprocessor(超文本预处理器)&#xff09;&#xff0c;而是由1977年提出该算法的三个歪果…...

Android 多用户相关

Android 多用户相关 本文主要记录下android 多用户相关的adb 命令操作. 1: 获取用户列表 命令: adb shell pm list users 输出如下: Users:UserInfo{0:机主:c13} running默认只有一个用户, id为0 &#xff0c;用户状态为运行 2: 创建新用户 命令&#xff1a; adb shell …...

第三课:异步编程核心:Callback、Promise与Async/Await

Node.js 是一个基于事件驱动的非阻塞 I/O 模型&#xff0c;这使得它非常适合处理高并发的网络请求。在 Node.js 中&#xff0c;异步编程是一项非常重要的技能。理解和掌握异步编程的不同方式不仅能提高代码的效率&#xff0c;还能让你更好地应对复杂的开发任务。本文将深入探讨…...

红果短剧安卓+IOS双端源码,专业短剧开发公司

给大家拆解一下红果短剧/河马短剧&#xff0c;这种看光解锁视频&#xff0c;可以挣金币的短剧APP。给大家分享一个相似的短剧APP源码&#xff0c;这个系统已接入穿山甲广告、百度广告、快手广告、腾讯广告等&#xff0c;类似红果短剧的玩法&#xff0c;可以看剧赚钱&#xff0c…...

C# ArrayPool

ArrayPool<T> 的作用ArrayPool<T> 的使用方式共享数组池自定义数组池 注意事项应用场景 在C#中&#xff0c;ArrayPool<T> 是一个非常有用的工具类&#xff0c;主要用于高效地管理数组的分配和回收&#xff0c;以减少内存分配和垃圾回收的压力。它属于 System…...

Conda 生态系统介绍

引言 Conda 是一个开源的包管理和环境管理系统,最初由 Continuum Analytics 开发,现为 Anaconda 公司维护。它在数据科学和 Python/R 生态中占据核心地位,因其能跨平台(Linux/Windows/macOS)管理依赖关系,并通过虚拟环境隔离不同项目的开发环境。Conda 的生态系统包含多…...

批量将 Word 拆分成多个文件

当一个 Word 文档太大的时候&#xff0c;我们通常会将一个大的 Word 文档拆分成多个小的 Word 文档&#xff0c;在 Office 中拆分 Word 文档是比较麻烦的&#xff0c;我们需要将 Word 文档的页面复制到另外一个 Word 文档中去&#xff0c;然后删除原 Word 文档中的内容。当然也…...

Gravitino源码分析-SparkConnector 实现原理

Gravitino SparkConnector 实现原理 本文参考了官网介绍&#xff0c;想看官方解析请参考 官网地址 本文仅仅介绍原理 文章目录 Gravitino SparkConnector 实现原理背景知识-Spark Plugin 介绍(1) **插件加载**(2) **DriverPlugin 初始化**(3) **ExecutorPlugin 初始化**(4) *…...

react基本功

useLayoutEffect useLayoutEffect 用于在浏览器重新绘制屏幕之前同步执行代码。它与 useEffect 相同,但执行时机不同。 主要特点 执行时机:useLayoutEffect 在 DOM 更新完成后同步执行,但在浏览器绘制之前。这使得它可以在浏览器渲染之前读取和修改 DOM,避免视觉上的闪烁…...

python-leetcode-解决智力问题

2140. 解决智力问题 - 力扣&#xff08;LeetCode&#xff09; 这道题是一个典型的 动态规划&#xff08;Dynamic Programming, DP&#xff09; 问题&#xff0c;可以使用 自底向上 的方式解决。 思路 定义状态&#xff1a; 设 dp[i] 表示从第 i 题开始&#xff0c;能获得的最高…...

引领变革!北京爱悦诗科技有限公司荣获“GAS消费电子科创奖-产品创新奖”!

在2025年“GAS消费电子科创奖”评选中&#xff0c;北京爱悦诗科技有限公司提交的“aigo爱国者GS06”&#xff0c;在技术创新性、设计创新性、工艺创新性、智能化创新性及原创性五大维度均获得评委的高度认可&#xff0c;荣获“产品创新奖”。 这一奖项不仅是对爱悦诗在消费电子…...

微信小程序+SpringBoot的单词学习小程序平台(程序+论文+讲解+安装+修改+售后)

感兴趣的可以先收藏起来&#xff0c;还有大家在毕设选题&#xff0c;项目以及论文编写等相关问题都可以给我留言咨询&#xff0c;我会一一回复&#xff0c;希望帮助更多的人。 系统背景 &#xff08;一&#xff09;社会需求背景 在全球化的大背景下&#xff0c;英语作为国际…...

wordpress分类名称调用的几种情况

在WordPress中&#xff0c;如果你想调用当前分类的名称&#xff0c;可以使用single_cat_title()函数。以下是一些常见的使用方法和场景&#xff1a; 1. 在分类页面调用当前分类名称 如果你正在分类存档页面(category.php)中&#xff0c;可以直接使用single_cat_title()函数来…...

HMC7043和HMC7044芯片配置使用

一,HMC7043芯片 MC7043独特的特性是对14个通道分别进行独立灵活的相位管理。所有14个通道均支持频率和相位调整。这些输出还可针对50 Ω或100 Ω内部和外部端接选项进行编程。HMC7043器件具有RF SYNC功能,支持确定性同步多个HMC7043器件,即确保所有时钟输出从同一时钟沿开始…...

html播放本地音乐

本地有多个音乐文件&#xff0c;想用 html 逐个播放&#xff0c;或循环播放&#xff0c;并设置初始音量。 audio 在 html 中播放音乐文件用 audio 标签&#xff1a; controls 启用控制按钮&#xff0c;如进度条、播放、音量、速度等。不加不显示任何 widget。autoplay 理应启…...

Windows11下玩转 Docker

一、前提准备 WSL2&#xff1a;Windows 提供的一种轻量级 Linux 运行环境&#xff0c;具备完整的 Linux 内核&#xff0c;并支持更好的文件系统性能和兼容性。它允许用户在 Windows 系统中运行 Linux 命令行工具和应用程序&#xff0c;而无需安装虚拟机或双系统。Ubuntu 1.1 安…...

vLLM + Open-WebUI 本地私有化部署 DeepSeek-R1-Distill-Qwen-32B 方案

一、vLLM 部署 DeepSeek-R1-Distill-Qwen-32B DeepSeek-R1-Distill 系列模型是 DeepSeek-R1 的蒸馏模型&#xff0c;官方提供了从 1.5B - 70B 不同尺寸大小的模型。特别适合在计算资源有限的环境中部署。 DeepSeek-R1 各个版本的蒸馏模型评估结果如下&#xff1a; 其中 DeepS…...

【基础知识】回头看Maven基础

背景 项目过程中&#xff0c;对于Maven的pom.xml文件&#xff0c;很多时候&#xff0c;我通过各种参考、仿写&#xff0c;最终做出想要的效果。 但实际心里有些迷糊&#xff0c;不清楚具体哪个基础的配置所实现的效果。 今天&#xff0c;特意回过头来&#xff0c;了解Maven的基…...

在 MyBatis 中,若数据库字段名与 SQL 保留字冲突解决办法

在 MyBatis 中&#xff0c;若数据库字段名与 SQL 保留字冲突&#xff0c;可通过以下方法解决&#xff1a; 目录 一、使用转义符号包裹字段名二、通过别名映射三、借助 MyBatis-Plus 注解四、全局配置策略&#xff08;辅助方案&#xff09;最佳实践与注意事项 一、使用转义符号…...

docker-compose Install reranker(fastgpt支持) GPU模式

前言BGE-重新排名器 与 embedding 模型不同,reranker 或 cross-encoder 使用 question 和 document 作为输入,直接输出相似性而不是 embedding。 为了平衡准确性和时间成本,cross-encoder 被广泛用于对其他简单模型检索到的前 k 个文档进行重新排序。 例如,使用 bge 嵌入模…...

异步流式响应总卡顿、丢帧、OOM?FastAPI 2.0三大核心配置必须在上线前重写,否则AI服务将不可用

第一章&#xff1a;FastAPI 2.0异步AI流式响应的典型故障图谱在 FastAPI 2.0 中启用异步流式响应&#xff08;如 StreamingResponse 配合 async generator&#xff09;处理大语言模型推理输出时&#xff0c;常见故障并非源于逻辑错误&#xff0c;而是由异步生命周期、客户端兼容…...

Vue 3.4 defineModel实战:5分钟教你封装一个带.trim和.number的智能输入框

Vue 3.4 defineModel实战&#xff1a;5分钟封装智能输入框组件 在表单交互开发中&#xff0c;输入框处理用户数据时经常需要基础格式处理——比如自动去除首尾空格、将字符串转为数字。传统方案需要在每个使用处手动调用.trim()或parseFloat()&#xff0c;既重复又容易遗漏。Vu…...

双轨制新零售系统模式开发解析

双轨制新零售系统模式开发解析&#xff1a;从架构设计到合规落地在新零售数字化转型浪潮中&#xff0c;双轨制模式凭借其轻量化组织架构与高效裂变能力&#xff0c;成为企业低成本获客与业绩增长的重要工具。不同于传统多级分销的复杂层级&#xff0c;双轨制通过“二二复制”的…...

自动驾驶模拟平台模型配置全指南:从技术选型到场景验证

自动驾驶模拟平台模型配置全指南&#xff1a;从技术选型到场景验证 【免费下载链接】alpasim 项目地址: https://gitcode.com/GitHub_Trending/al/alpasim 一、AlpaSim核心价值&#xff1a;构建自动驾驶研发闭环 AlpaSim作为开源自动驾驶模拟平台&#xff0c;通过模块…...

3步打造跨设备开发工作站:code-server全场景部署指南

3步打造跨设备开发工作站&#xff1a;code-server全场景部署指南 【免费下载链接】code-server VS Code in the browser 项目地址: https://gitcode.com/GitHub_Trending/co/code-server 作为开发者&#xff0c;你是否曾面临设备限制带来的开发困境&#xff1f;高性能电…...

高效掌控暗影精灵设备:开源工具OmenSuperHub的四大突破

高效掌控暗影精灵设备&#xff1a;开源工具OmenSuperHub的四大突破 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 告别原厂软件臃肿困扰&#xff0c;体验纯净硬件控制新方式 OmenSuperHub是一款专为惠普暗影精灵笔记本打造…...

Power BI视觉对象交互设计秘籍--巧用书签按钮实现动态提示

1. 为什么需要动态提示功能&#xff1f; 做数据分析报表最怕什么&#xff1f;不是数据不准&#xff0c;而是看报表的人看不懂。我见过太多这样的场景&#xff1a;精心设计的柱状图被用户误读&#xff0c;复杂的折线图被理解成完全相反的趋势。这时候你会想&#xff0c;要是有个…...

AnimateDiff保姆级教学:负面提示词详解,轻松提升视频画质

AnimateDiff保姆级教学&#xff1a;负面提示词详解&#xff0c;轻松提升视频画质 你是否遇到过这样的困扰&#xff1a;用AnimateDiff生成的视频创意很棒&#xff0c;但画面总有些小瑕疵&#xff1f;比如人物皮肤上不自然的纹理、背景里莫名其妙的噪点&#xff0c;或是某些区域…...

从科研到工程:为什么我选择用ROS2重构Apollo/autoware的规控算法?

从科研到工程&#xff1a;为什么我选择用ROS2重构Apollo/autoware的规控算法&#xff1f; 在自动驾驶领域&#xff0c;从实验室原型到量产系统的跨越&#xff0c;往往伴随着技术栈的全面升级。三年前&#xff0c;当我第一次将Apollo的规划控制模块移植到ROS1环境时&#xff0c;…...

解密Qwen2VLImageProcessor:从RGB转换到时空补丁的完整预处理流水线

解密Qwen2VLImageProcessor&#xff1a;从RGB转换到时空补丁的完整预处理流水线 在计算机视觉与多模态模型融合的前沿领域&#xff0c;图像预处理流水线的设计质量直接影响着模型性能的天花板。Qwen2VLImageProcessor作为专为Qwen2-VL模型设计的预处理引擎&#xff0c;其独特之…...