• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > python实现RSA加密(解密)算法

python实现RSA加密(解密)算法

作者:mrr 字体:[增加 减小] 来源:互联网

mrr 通过本文主要向大家介绍了python实现rsa算法,python rsa算法,python rsa,python3 rsa,python rsa库等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO推荐为公钥数据加密标准。

今天只有短的RSA钥匙才可能被强力方式解破。到2008年为止,世界上还没有任何可靠的攻击RSA算法的方式。只要其密钥的长度足够长,用RSA加密的信息实际上是不能被解破的。但在分布式计算和量子计算机理论日趋成熟的今天,RSA加密安全性受到了挑战。

RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

核心代码:

# -*- encoding:gbk -*- import math,random#导入模块 def prime_num(max_num):#生成小于max_num的素数列表 prime_num=[] for i in xrange(2,max_num): temp=0 sqrt_max_num=int(math.sqrt(i))+1 for j in xrange(2,sqrt_max_num): if i%j==0: temp=j break if temp==0: prime_num.append(i) return prime_num def rsa_key():#生成密钥的函数 prime=prime_num(400)#小于400的素数列表 p=random.choice(prime[-50:-1])#从后50个素数中随机选择一个作为p q=random.choice(prime[-50:-1])#从后50个素数中随机选择一个作为q while(p==q):#如果p和q相等则重新选择 q=random.choice(prime[-50:-1]) N=p*q r=(p-1)*(q-1) r_prime=prime_num(r) e=random.choice(r_prime)#随机选一个素数 d=0 for n in xrange(2,r): if (e*n)%r==1: d=n break return ((N,e),(N,d)) def encrypt(pub_key,origal):#生成加密用的公钥 N,e=pub_key return (origal**e)%N def decrypt(pri_key,encry):#生成解密用的私钥 N,d=pri_key return (encry**d)%N
</div>

下面一段代码给大家介绍python_rsa加密解密

使用python进行rsa加密与加密,包括公钥加密私钥解密,私钥加密公钥解密。(需要安装M2Crypto库)。

代码:

#!/usr/bin/env python
#encoding=utf-8 
'''
测试rsa加密解密
'''
from M2Crypto import RSA 
msg = 'aaaa-aaaa'
rsa_pub = RSA.load_pub_key('rsa_pub.pem')
rsa_pri = RSA.load_key('rsa_pri.pem')
print '*************************************************************'
print '公钥加密,私钥解密'
ctxt = rsa_pub.public_encrypt(msg, RSA.pkcs1_padding)
ctxt64 = ctxt.encode('base64')
print ('密文:%s'% ctxt64)
rsa_pri = RSA.load_key('rsa_pri.pem')
txt = rsa_pri.private_decrypt(ctxt, RSA.pkcs1_padding)
print('明文:%s'% txt)
print '*************************************************************'
print '私钥加密,公钥解密'
ctxt_pri = rsa_pri.private_encrypt(msg, RSA.pkcs1_padding)
ctxt64_pri = ctxt.encode('base64')
print ('密文:%s'% ctxt64_pri)
txt_pri = rsa_pub.public_decrypt(ctxt_pri, RSA.pkcs1_padding)
print('明文:%s'% txt_pri)
</div>

库的安装说明

M2Crypto库的下载地址:

https://github.com/martinpaljak/M2Crypto

或者:https://pypi.python.org/pypi/M2Crypto

依赖的库:openssh-devel gcc swig (这3个库在centos上可以直接使用yum安装)

</div>

您可能想查找下面的文章:

  • Python实现八大排序算法
  • python实现RSA加密(解密)算法
  • 使用python实现rsa算法代码
  • python实现RSA加密(解密)算法
  • 使用python实现rsa算法代码
  • python使用rsa加密算法模块模拟新浪微博登录
  • python 实现插入排序算法
  • python 实现插入排序算法

相关文章

  • Windows上配置Emacs来开发Python及用Python扩展Emacs
  • python动态加载变量示例分享
  • Python检测网站链接是否已存在
  • Python 包含汉字的文件读写之每行末尾加上特定字符
  • python通过smpt发送邮件的方法
  • Python常用模块用法分析
  • Python的dict字典结构操作方法学习笔记
  • Python自动化测试工具Splinter简介和使用实例
  • 使用python绘制常用的图表
  • python中偏函数partial用法实例分析

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Python 命令行非阻塞输入的小例子
    • 跟老齐学Python之玩转字符串(3)
    • Python运用于数据分析的简单教程
    • gearman的安装启动及python API使用实例
    • Python字符串逐字符或逐词反转方法
    • python使用BeautifulSoup分页网页中超链接的方法
    • 利用Python的Twisted框架实现webshell密码扫描器的教程
    • windows系统下Python环境的搭建(Aptana Studio)
    • Python中类的定义、继承及使用对象实例详解
    • 浅谈Python浅拷贝、深拷贝及引用机制

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有