欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python實(shí)現(xiàn)RSA加密(解密)算法

 更新時(shí)間:2016年02月17日 11:43:43   投稿:mrr  
RSA是目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的絕大多數(shù)密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn),下面通過本文給大家介紹python實(shí)現(xiàn)RSA加密(解密)算法,需要的朋友參考下

RSA是目前最有影響力的公鑰加密算法,它能夠抵抗到目前為止已知的絕大多數(shù)密碼攻擊,已被ISO推薦為公鑰數(shù)據(jù)加密標(biāo)準(zhǔn)。

今天只有短的RSA鑰匙才可能被強(qiáng)力方式解破。到2008年為止,世界上還沒有任何可靠的攻擊RSA算法的方式。只要其密鑰的長度足夠長,用RSA加密的信息實(shí)際上是不能被解破的。但在分布式計(jì)算和量子計(jì)算機(jī)理論日趨成熟的今天,RSA加密安全性受到了挑戰(zhàn)。

RSA算法基于一個(gè)十分簡單的數(shù)論事實(shí):將兩個(gè)大素?cái)?shù)相乘十分容易,但是想要對其乘積進(jìn)行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。

核心代碼:

# -*- encoding:gbk -*- import math,random#導(dǎo)入模塊 def prime_num(max_num):#生成小于max_num的素?cái)?shù)列表 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():#生成密鑰的函數(shù) prime=prime_num(400)#小于400的素?cái)?shù)列表 p=random.choice(prime[-50:-1])#從后50個(gè)素?cái)?shù)中隨機(jī)選擇一個(gè)作為p q=random.choice(prime[-50:-1])#從后50個(gè)素?cái)?shù)中隨機(jī)選擇一個(gè)作為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)#隨機(jī)選一個(gè)素?cái)?shù) 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

下面一段代碼給大家介紹python_rsa加密解密

使用python進(jìn)行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)

庫的安裝說明

M2Crypto庫的下載地址:

https://github.com/martinpaljak/M2Crypto

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

依賴的庫:openssh-devel gcc swig (這3個(gè)庫在centos上可以直接使用yum安裝)

相關(guān)文章

  • Django 內(nèi)置權(quán)限擴(kuò)展案例詳解

    Django 內(nèi)置權(quán)限擴(kuò)展案例詳解

    這篇文章主要介紹了Django 內(nèi)置權(quán)限擴(kuò)展案例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python實(shí)現(xiàn)程序判斷季節(jié)的代碼示例

    Python實(shí)現(xiàn)程序判斷季節(jié)的代碼示例

    今天小編就為大家分享一篇關(guān)于Python實(shí)現(xiàn)程序判斷季節(jié)的代碼示例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01
  • python必學(xué)知識之裝飾器詳解

    python必學(xué)知識之裝飾器詳解

    這篇文章主要介紹了python必學(xué)知識之裝飾器詳解,python的三大器指的是:裝飾器、迭代器、生成器,下面就裝飾器整理一下從各種資源收獲的對裝飾器的理解,需要的朋友可以參考下
    2023-09-09
  • 怎么快速自學(xué)python

    怎么快速自學(xué)python

    在本篇文章里小編給大家分享的是一篇關(guān)于怎么快速自學(xué)python的相關(guān)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2020-06-06
  • Python生成8位隨機(jī)字符串的方法分析

    Python生成8位隨機(jī)字符串的方法分析

    這篇文章主要介紹了Python生成8位隨機(jī)字符串的方法,結(jié)合實(shí)例形式對比分析了2種比較常用的隨機(jī)字符串生成技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • Python3獲取cookie常用三種方案

    Python3獲取cookie常用三種方案

    這篇文章主要介紹了Python3獲取cookie常用三種方案,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-10-10
  • pycham查看程序執(zhí)行的時(shí)間方法

    pycham查看程序執(zhí)行的時(shí)間方法

    今天小編就為大家分享一篇pycham查看程序執(zhí)行的時(shí)間方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 如何讓Python在HTML中運(yùn)行

    如何讓Python在HTML中運(yùn)行

    這個(gè)名為PyScript的框架,其核心目標(biāo)是為開發(fā)者提供在標(biāo)準(zhǔn)HTML中嵌入Python代碼的能力,使用?Python調(diào)用JavaScript函數(shù)庫,并以此實(shí)現(xiàn)利用Python創(chuàng)建Web應(yīng)用的功能,本文給大家介紹Python?HTML運(yùn)行的案例解析,感興趣的朋友一起看看吧
    2022-05-05
  • python cv2在驗(yàn)證碼識別中應(yīng)用實(shí)例解析

    python cv2在驗(yàn)證碼識別中應(yīng)用實(shí)例解析

    這篇文章主要介紹了python cv2在驗(yàn)證碼識別中應(yīng)用實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 詳解在Python程序中自定義異常的方法

    詳解在Python程序中自定義異常的方法

    這篇文章主要介紹了詳解在Python程序中自定義異常的方法,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-10-10

最新評論