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

丰宁县建设局网站律师推广网站排名

丰宁县建设局网站,律师推广网站排名,网站底部怎么做需要放些什么,企业为什么要做流程代码环境,python3.5.2 RSA加密的过程是:使用公钥加密,私钥解密 RSA签名的过程是:使用私钥签名,公钥验证 所以核心代码就是,生成公钥私钥,使用公钥私钥分别进行加密解密。 在实际编码的时候&…

代码环境,python3.5.2

RSA加密的过程是:使用公钥加密,私钥解密

RSA签名的过程是:使用私钥签名,公钥验证

所以核心代码就是,生成公钥私钥,使用公钥私钥分别进行加密解密。

在实际编码的时候,使用python自带的RSA库,需要特别处理编码问题,因为默认的加密解密函数是接收bytes类型的数据。

加密的核心代码如下:

# -*- coding: utf-8 -*-
import rsa
import base64
(public_key, private_key) = rsa.newkeys(1024)
msg = "M2Crypto python关于RSA的库还是蛮多的,当然也可以直接用openSSLqweasasd123"
msg = msg.encode(encoding="utf-8")
encrypt_msg = rsa.encrypt(msg, public_key)decrypt_msg = rsa.decrypt(encrypt_msg, private_key)
print("公钥:")
print(public_key.save_pkcs1().decode('utf8'))
print("\n私钥:")
print(private_key.save_pkcs1().decode('utf8'))
print("\n原始文本:")
print(msg.decode('utf8'))
print("\n加密后的文本:")
print(base64.encodebytes( encrypt_msg).decode('utf8'))
print("\n解密后的文本:")
print(decrypt_msg.decode('utf8'))

输出结果如下:

  

结合tkinter的代码如下,使用tkinter是因为绘制界面很简单:

# -*- coding:utf-8 -*-
from tkinter import *
import rsa
import base64def GenerateKey():(public_key, private_key) = rsa.newkeys(1024)print("\n生成公钥:"+public_key.save_pkcs1().decode('utf8'))print("\n生成私钥:"+private_key.save_pkcs1().decode('utf8'))publicKeyText.delete(0.0, END)publicKeyText.insert(END, public_key.save_pkcs1().decode('utf8'))privateKeyText.delete(0.0, END)privateKeyText.insert(END, private_key.save_pkcs1().decode('utf8'))def EncryptionByPublickey():           #用公钥加密public_key_str = publicKeyText.get("0.0", "end").encode(encoding="utf-8")public_key = rsa.PublicKey.load_pkcs1(public_key_str)entry_str = entryText.get("0.0", "end").encode(encoding="utf-8")encrypt_msg = rsa.encrypt(entry_str, public_key)print("公钥加密后的文本为:\n"+base64.encodebytes(encrypt_msg).decode('utf8'))outputText.delete(0.0, END)outputText.insert(END, base64.encodebytes(encrypt_msg).decode('utf8'))def EncryptionByPrivatekey(): private_key_str = privateKeyText.get("0.0", "end").encode(encoding="utf-8")private_key = rsa.PrivateKey.load_pkcs1(private_key_str)entry_str = entryText.get("0.0", "end").encode(encoding="utf-8")encrypt_msg = rsa.encrypt(entry_str, private_key)print("私钥加密后的文本为:\n"+base64.encodebytes(encrypt_msg).decode('utf8'))outputText.delete(0.0, END)outputText.insert(END, base64.encodebytes(encrypt_msg).decode('utf8'))  def DeryptionByPublickey(): public_key_str = privateKeyText.get("0.0", "end").encode(encoding="utf-8")public_key = rsa.PrivateKey.load_pkcs1(public_key_str)entry_str = entryText.get("0.0", "end").encode(encoding="utf-8")encrypt_msg = base64.decodebytes( entry_str)outputText.delete(0.0, END)try:decrypt_msg = rsa.decrypt(encrypt_msg, public_key)print("公钥解密后的文本为:\n"+decrypt_msg.decode('utf8'))outputText.insert(END,decrypt_msg.decode('utf8'))except:decrypt_msg = "公钥解密失败"print(decrypt_msg)outputText.insert(END,decrypt_msg)
def DecryptionByPrivatekey(): private_key_str = privateKeyText.get("0.0", "end").encode(encoding="utf-8")private_key = rsa.PrivateKey.load_pkcs1(private_key_str)entry_str = entryText.get("0.0", "end").encode(encoding="utf-8")encrypt_msg = base64.decodebytes( entry_str)outputText.delete(0.0, END)try:decrypt_msg = rsa.decrypt(encrypt_msg, private_key)print("私钥解密后的文本为:\n"+decrypt_msg.decode('utf8'))outputText.insert(END,decrypt_msg.decode('utf8'))except:decrypt_msg = "私钥解密失败"print(decrypt_msg)outputText.insert(END,decrypt_msg)window = Tk()    
window.title("RSA加密解密软件")frame = Frame(window)
frame.pack()label = Label(frame, text = "公钥:")
label.grid(row = 1, column = 1,columnspan= 4)publicKeyText = Text(frame,width=50,height=8)
publicKeyText.grid(row = 2, column = 1,columnspan = 4)label = Label(frame, text = "私钥:")
label.grid(row = 3, column = 1,columnspan= 4)privateKeyText = Text(frame,width=50,height=12)
privateKeyText.grid(row = 4, column = 1,columnspan = 4)btGenerateKey = Button(frame, text = "生成公钥/私钥",command=GenerateKey)
btGenerateKey.grid(row = 5, column = 1,columnspan = 4)label = Label(frame, text = "请输入加密/解密的文本:")
label.grid(row = 6, column = 1,columnspan = 4)entryText = Text(frame,width=50,height=5)
entryText.grid(row = 7, column = 1,columnspan = 4)btEncryptionByPublickey = Button(frame, text = "公钥加密",command=EncryptionByPublickey)
btEncryptionByPublickey.grid(row = 8, column = 1,pady = 10)btDeryptionByPublickey = Button(frame, text = "公钥解密",command=DeryptionByPublickey)
btDeryptionByPublickey.grid(row = 8, column = 2)btEncryptionByPrivatekey = Button(frame, text = "私钥加密",command=EncryptionByPrivatekey)
btEncryptionByPrivatekey.grid(row = 8, column = 3)btDecryptionByPrivatekey = Button(frame, text = "私钥解密",command=DecryptionByPrivatekey)
btDecryptionByPrivatekey.grid(row = 8, column = 4)outputText = Text(frame,width=50,height=5)
outputText.grid(row = 9, column = 1,columnspan = 4)print("欢迎使用本软件……")
GenerateKey();
mainloop()print("欢迎再次使用本软件……")

 

加密过程:

  使用公钥加密:

 

 

   使用私钥解密:

 

数字签名过程:

  使用私钥签名:

 

 

  使用公钥验证:

 

 

转载于:https://www.cnblogs.com/youmuchen/p/8274783.html

http://www.wooajung.com/news/34436.html

相关文章:

  • 平江县网站建设长沙百度网站推广
  • 企业网站建设费详细的营销推广方案
  • 网站做描本好处百度开车关键词
  • 网站被墙怎么办网络营销案例范文
  • 网站开发失败原因分析搜索引擎优化的方法有哪些?
  • 1企业网站案例竞价恶意点击器
  • win2008怎么做网站最新的国际新闻
  • 关于做香奈儿网站的PPT推广软文200字
  • 成熟网站开发联系电话武汉seo创造者
  • 社交(sns)网站的完整设计思路网络推广怎么找客户
  • 和萝莉做的电影网站线上平台推广方案
  • 桂林象鼻山附近的酒店漯河搜狗关键词优化排名软件
  • 学校网站建设预算百度联盟注册
  • 专业的网站设计seo伪原创工具
  • 网站建设计入哪个科目品牌网站建设
  • 商城网站制作网站谷歌seo代运营
  • 网站建设营销型号的区别珠海百度关键词优化
  • 做网站的前端技术互联网推广引流公司
  • 网站做实名验证网店推广方式
  • 与魔鬼做交易的真实网站免费做网页的网站
  • 做网站旅游销售网站秒收录工具
  • ftp上传网站后怎么弄哪里有学市场营销培训班
  • 免费申请qq号注册新账号百度seo新站优化
  • 上海遨游网站建设上海谷歌推广
  • 个人注册域名可以做网站么seo在哪学
  • 深圳提供网站建设制作怎么查百度竞价关键词价格
  • 做网站公司找哪家优化网站推广网站
  • 网站右侧浮动广告代码搜索引擎优化代理
  • 制作网站 公司灰色词排名代做
  • 乐清做网站公司广告策划书