最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

核心代碼:

# -*- 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庫(kù))。

代碼:

#!/usr/bin/env python
#encoding=utf-8 
'''
測(cè)試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)

庫(kù)的安裝說(shuō)明

M2Crypto庫(kù)的下載地址:

https://github.com/martinpaljak/M2Crypto

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

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

相關(guān)文章

  • wxPython實(shí)現(xiàn)整點(diǎn)報(bào)時(shí)

    wxPython實(shí)現(xiàn)整點(diǎn)報(bào)時(shí)

    這篇文章主要為大家詳細(xì)介紹了wxPython實(shí)現(xiàn)整點(diǎn)報(bào)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • 詳解Python中映射類型的內(nèi)建函數(shù)和工廠函數(shù)

    詳解Python中映射類型的內(nèi)建函數(shù)和工廠函數(shù)

    這篇文章主要介紹了詳解Python中映射類型的內(nèi)建函數(shù)和工廠函數(shù),目前Python的內(nèi)建映射類型只有字典一種,需要的朋友可以參考下
    2015-08-08
  • python修改pip install默認(rèn)安裝路徑的詳細(xì)步驟

    python修改pip install默認(rèn)安裝路徑的詳細(xì)步驟

    pip安裝的第三方庫(kù)默認(rèn)存放在C盤中,為了便于管理和不過(guò)度占用C盤空間所以想修改默認(rèn)的pip路徑,文章通過(guò)圖文結(jié)合的方式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • pyqt5 QListWidget的用法解析

    pyqt5 QListWidget的用法解析

    這篇文章主要介紹了pyqt5 QListWidget的用法解析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-03-03
  • opencv 形態(tài)學(xué)變換(開(kāi)運(yùn)算,閉運(yùn)算,梯度運(yùn)算)

    opencv 形態(tài)學(xué)變換(開(kāi)運(yùn)算,閉運(yùn)算,梯度運(yùn)算)

    這篇文章主要介紹了opencv 形態(tài)學(xué)變換(開(kāi)運(yùn)算,閉運(yùn)算,梯度運(yùn)算),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Pycharm中flask開(kāi)啟debug模式的詳細(xì)流程

    Pycharm中flask開(kāi)啟debug模式的詳細(xì)流程

    PyCharm是一個(gè)強(qiáng)大的集成開(kāi)發(fā)環(huán)境(IDE),非常適合Python開(kāi)發(fā)者,包括Flask框架,當(dāng)你在使用Flask開(kāi)發(fā)Web應(yīng)用時(shí),Debug功能是非常重要的,它允許你在運(yùn)行時(shí)檢查程序的狀態(tài)、調(diào)試代碼錯(cuò)誤,本文將介紹Pycharm中flask開(kāi)啟debug模式的詳細(xì)流程,需要的朋友可以參考下
    2024-08-08
  • numpy.reshape()的函數(shù)的具體使用

    numpy.reshape()的函數(shù)的具體使用

    本文主要介紹了numpy.reshape()的函數(shù)的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-02-02
  • python實(shí)現(xiàn)對(duì)arxml文件的操作方法

    python實(shí)現(xiàn)對(duì)arxml文件的操作方法

    本篇文章給大家介紹python實(shí)現(xiàn)對(duì)arxml文件的操作方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-12-12
  • Python IDE環(huán)境之 新版Pycharm安裝詳細(xì)教程

    Python IDE環(huán)境之 新版Pycharm安裝詳細(xì)教程

    這篇文章主要介紹了Python IDE環(huán)境之 新版Pycharm安裝教程,本文教程給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • python 檢查是否為中文字符串的方法

    python 檢查是否為中文字符串的方法

    今天小編就為大家分享一篇python 檢查是否為中文字符串的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12

最新評(píng)論

夏津县| 平湖市| 肥城市| 廊坊市| 浙江省| 思南县| 通许县| 固原市| 栾川县| 柞水县| 通河县| 桃江县| 霍州市| 汝南县| 岚皋县| 大兴区| 清水县| 临高县| 江孜县| 孟村| 宁都县| 柳州市| 米易县| 班戈县| 剑川县| 嘉义市| 和田市| 凌云县| 柳江县| 仁怀市| 双城市| 武山县| 高陵县| 宁化县| 武夷山市| 新源县| 宜春市| 长葛市| 霞浦县| 聂拉木县| 七台河市|