Linux运用openssl以及rsatool解决一点点rsa的问题 python2.7(新手向

本文详细介绍了如何利用Openssl和rsatool工具进行RSA加密解密的操作流程。从.pem和.der文件的处理,到公钥和私钥的解析,再到密钥组件的提取和密钥文件的生成,最后实现加密文件的解密。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Openssl

openssl是linux系统自带的一个工具,在terminal里输入openssl就能使用了。(Ctrl+C可以退出来)

在这里插入图片描述
遇到.pem .enc 或者是.der 文件格式时就要用上openssl了,一般都是给公钥文件以及flag文件让你求flag。首先遇到pubkey.pem,就是rsa 的公钥文件,把该文件拖到虚拟机Linux的桌面上,然后再进入该目录,输入

openssl rsa -in pubkey.pem -pubin -modulus -text

-in 是输入文件
-pubin是表示从文件中公钥(因为默认是读取私钥)
附加:-pubout是表示输出公钥(默认是输出私钥)
所以上面也可以换成这个:

openssl rsa -in pubkey.pem -pubin -pubout -modulus -text

结果都是一样的。噢噢上面的还没说完,我们继续。
-text 是输出密钥的各种组件信息以及密钥文件本身的文本(但是不会直接输出公钥,所以需要下一句)
-modulus 是输出密钥模数(就是输出N)模N嘛
实际上-text命令提供e,-modulus命令提供N
在这里插入图片描述
图中的Exponent就是e,Modulus就是N。
-noout 命令是不输出密钥文件的文本内容,即上图中—BEGIN PUBLIC KEY–到—END PUBLIC KEY —的内容。
所以想要输出的内容美观一点,只需输入

openssl rsa -in pubkey.pem -pubin -modulus -noout

在这里插入图片描述就会仅仅输出N啦

rsatool

下载连接:
https://github.com/ius/rsatool
这个是在python下运行的工具,一般Linux里都有。在终端输入python就行了
在这里插入图片描述

要是没有的话直接按照提示输入代码装就好了。
其实我装rsatol的时候老是出现问题。。现在就简单总结一下:
首先把setup.py打开,看看要求
在这里插入图片描述
第二行的 setuptools 和标橙的倒数第二行’gmpy’ 和’pyasn1’都要提前安装好。

我建议是先安装pip,因为这个实在是太方便了,而且不容易出错。

先在linux终端输入:

wget https://bootstrap.pypa.io/get-pip.py

下载完毕后再输入:

sudo python get-pip.py

最后得到Successfully installed pip-19.2.1 wheel-0.33.4就是安装成功了!

ok,有了pip之后一切都简单了。要安装setuptools就一行解决:

sudo pip install setuptools

sudo是获取权限
接着安装gmpy。网上说gmpy得先安装gmy,所以

sudo apt-get install libgmp-dev

要是出现
defeat respond:
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?
重启就好了

pip install gmpy

如果出现

在这里插入图片描述

那就先

sudo apt-get install libssl-dev libffi-dev build-essential libxml2-dev libxslt1-dev

还不行就装上python2.7-dev

sudo apt-get install python2.7-dev

后面是要安装pyasn1,直接

pip install pyasn1 

最后就进入rsatool的目录安装就行啦

 sudo python setup.py install

在这里插入图片描述最后得到Finished processing dependencies for rsatool==1.0就算是安装成功了。

我觉得rsatool就是一个简单的计算工具吧,有两种输入方法:一是输入p和q,另一种是输入n和d。之后让它生成一个完整的密钥文件(p,q,n,e,d)
使用方法:
一.输入p和q

python rsatool.py -f DER -o key.pem -p 4184799299 -q 3303891593

二.输入n和d

python  rsatool.py -f PEM -o key.pem -n 13826123222358393307 -d9793706120266356337

-f是输出文件的格式
-o是输出文件的名称

最后我们可以得到key.pem 这个密钥文件,注意这是.pem文件,所以又得用openssl来操作。
解密:(假设待解密文件是flag.enc)

openssl rsautl -decrypt -in flag.enc  -inkey key.pem

-inkey 是用的密钥文件
-decrypt是解密
最后解密结果就会输出来了

以上是根据攻防世界题目Normal_RSA得到的一些经验和教训。
参考连接:https://blog.youkuaiyun.com/Yu_csdnstory/article/details/90759717
https://www.jb51.net/softjc/574976.html
https://blog.youkuaiyun.com/u013687821/article/details/45113131
https://www.jianshu.com/p/7575f7976dad

<think>好的,用户想找在Linux上安装Python 2.7的逐步教程。首先,我需要确认用户的需求。Python 2.7已经过时,官方支持在2020年就停止了,所以用户可能有一些遗留项目需要维护。不过,安装旧版本可能存在安全风险,应该提醒用户注意这一点。 接下来,我需要回忆安装Python 2.7的常见方法。通常,Linux发行版的仓库可能还有Python 2.7的包,但像CentOS 8或Ubuntu 20.04之后的版本可能已经移除了。因此,可能需要从源码编译安装。 根据用户提供的引用,引用[1]提到在CentOS 5.6上安装Python 2.7使用mod_wsgi和cPanel。这可能涉及到添加额外的仓库或源码编译。引用[5]提到了使用apt更新包索引,可能在Debian/Ubuntu系统上。此外,引用[2]是关于安装Python 3.9的,但用户需要的是2.7,可能需要类似的步骤,但版本不同。 用户需要的是逐步指南,所以应该分步骤说明。首先,检查系统是否已经安装Python 2.7,然后安装依赖,下载源码,编译安装,最后验证安装。同时,需要注意不同发行版的包管理器差异,比如CentOS用yum,Ubuntu用apt。 还需要考虑安全性和兼容性问题,建议用户使用虚拟环境,如virtualenv,来隔离Python 2.7的环境,避免影响系统全局环境。此外,提醒用户尽量升级到Python 3,但如果必须使用2.7,需注意风险。 在回答中要引用提供的参考资料,例如引用[1]和[5]中的步骤,可能涉及安装必要的开发工具和依赖库。同时,用户可能需要配置环境变量或符号链接,但要注意不要覆盖系统自带的Python,这可能导致系统工具失效。 最后,生成相关问题时要围绕安装后的配置、虚拟环境使用、常见问题解决等,帮助用户进一步解决问题。</think>### 如何在Linux上逐步安装Python 2.7 #### 步骤1: 检查系统是否已安装Python 2.7 在终端运行以下命令: ```bash $ python2 --version ``` - 若输出类似 `Python 2.7.18`,则已安装,无需重复操作。 - 若未安装,继续下一步。 --- #### 步骤2: 安装依赖库 不同Linux发行版需安装的开发工具略有差异: - **Debian/Ubuntu**: ```bash $ sudo apt update $ sudo apt install build-essential zlib1g-dev libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev libbz2-dev ``` - **CentOS/RHEL**: ```bash $ sudo yum groupinstall "Development Tools" $ sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel ``` --- #### 步骤3: 下载并编译Python 2.7源码 1. 下载官方源码包: ```bash $ wget https://www.python.org/ftp/python/2.7.18/Python-2.7.18.tgz ``` 2. 解压并编译安装: ```bash $ tar xzf Python-2.7.18.tgz $ cd Python-2.7.18 $ ./configure --enable-optimizations $ make $ sudo make altinstall # 使用altinstall避免覆盖系统默认Python[^1] ``` --- #### 步骤4: 验证安装 检查特定版本号: ```bash $ python2.7 --version # 应输出: Python 2.7.18 ``` --- #### 步骤5: 配置虚拟环境(推荐) 为避免依赖冲突,建议使用`virtualenv`: ```bash $ pip install virtualenv # 若未安装pip,需先通过系统包管理器安装 $ virtualenv -p python2.7 my_project $ source my_project/bin/activate ``` --- #### 注意事项 1. Python 2.7已于2020年停止官方支持,存在安全风险,建议仅在必要场景使用 2. 不要使用`make install`,否则可能覆盖系统默认Python导致依赖问题[^5] 3. 若需与Python3共存,需明确指定`python2.7`和`pip2`命令 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值