最新要闻
- Linux发布6.1稳定版:进一步提升国产LoongArch架构CPU支持
- 婆婆给刚出生9天宝宝喂米糊引热议 医生称太离谱:回击这是习俗 科学靠边
- 世界杯决赛用球亮相:取名“梦想”、内藏高科技
- 续航轻松破1000km 哈弗H6插电混动亮相泰国:老外都叹服!
- 环球观热点:马斯克反悔:毫米波雷达重新上车
- 水溶性笔是什么意思?水溶性笔和油性笔的区别是什么?
- 白炽灯色温是多少?白炽灯色温4000-4600K是多少度?
- 八字有多少种排列组合?八字有食神代表什么?
- 荷月是几月的别称?十二个月的别称和雅称
- 酒店的英语怎么说?酒店前台的工作内容是什么?
- 当前快播:河北用上了无人驾驶农机:北斗加持 坐在屋里就把地给种了
- 今日要闻!奔驰、宝马、特斯拉相继取消收音机!广播公司担忧:有隐患
- 换机周期将创历史新高:长达43个月 你多久换一次?
- 波音、空客狂喜 印度将签史诗级飞机订单:一次买下500架
- 天天实时:创建全国首个ICU!我国重症医学奠基人陈德昌离世 享年90岁
- 【世界新要闻】2799元配酷睿i5!小米迷你主机将开启众筹 便宜900元条件公布
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Python工具箱系列(十九)
有了非对称密钥、摘要、对称密钥等现代密码学算法与技术,是不是就能够保证通信的安全无虞呢,并不是。
密码学在互联网应用的四个目标:机密性、完整性、身份验证、防抵赖。到目前为止,我们讨论的技术中,其中防抵赖的目标并没有达到。
假设A、B、C三个人共享一个对称加密算法密钥,现在A和B互相通信,A和B一直认为是双方在发送消息。由于C也有同样的密钥,它可以拦截A发往B的消息,然后篡改消息并用同样的密钥加密后发送给B, B能够正确解密,但是该消息其实已经被篡改。
(相关资料图)
同样的场景,A、B、C三个人共享一个对称加密算法密钥,A向B发送了一条消息,但是A可以抵赖说这条消息并不是他发送的,理由就是C也有同样的密钥,这条加密消息可能是C发送给B的,B无法向第三方证明是A给他发送了消息。
在公开密钥算法中,如果算法用于加密解密,也同样不能防止抵赖,以RSA加密算法举例,由于RSA的公钥是完全公开的,RSA私钥拥有者虽然能够解密,但是并不能确认是哪个客户端发送的消息,同理任何人都可以抵赖。
抵赖出现的根本原因就在于通信双方无法确认对方的身份,也就是不能进行身份验证,那么在密码学中有没有对应的解决方案呢?可以使用数字签名技术防抵赖。
在现实世界中,有哪些行为或者约定可以防止人抵赖呢?最明显的就是合同,合同一般需要人签字或者按指纹,考虑签字可以模仿伪造,这里重点用指纹签署的合同来解释。合同一旦由指纹签署了,就可以被复印多份。有了合同,合同签署人就无法否认合同的合法性,原因就在于法律规定,指纹具备唯一性,每个人的指纹是不同的,或者说指纹就代表了一个人。
回到密码学中,如果一个消息也含有特殊的指纹,是否就可以实现防抵赖呢。事实正是如此,在RSA密钥对中,私钥只有密钥对的生成者持有,如果不考虑密钥泄露的问题,私钥拥有者使用密钥(注意不是加密操作)签署一条消息,然后发送给任意的接收方,接收方只要拥有私钥对应的公钥,就能成功反解签署消息,由于只有私钥持有者才能“签署”消息,不能抵赖说这条签署消息不是他发送的,这就是数字签名技术的基本原理。
以下代码显示了签名的过程:
import base64from Crypto.PublicKey import RSAfrom Crypto.Hash import SHAfrom Crypto.Signature import PKCS1_v1_5 as PKCS1_signaturefrom Crypto.Cipher import PKCS1_v1_5 as PKCS1_cipherdef get_key(key_file): with open(key_file) as f: data = f.read() key = RSA.importKey(data) return keydef rsa_private_sign(data,key): signer = PKCS1_signature.new(key) digest = SHA.new() digest.update(data.encode("utf8")) sign = signer.sign(digest) signature = base64.b64encode(sign) signature = signature.decode("utf-8") return signatureprivate_key = get_key("demo_private_key.pem")with open("poetry.txt", "r", encoding="utf-8") as input_file: data = input_file.read() sign = rsa_private_sign(data,private_key) fo = open("sign.txt","w") fo.write(sign)
运行后,将对poetry.txt进行签名,生成签名文件sign.txt。随后使用公共信道将两个文件同时传出,接收方使用这两个文件来验证是否发生了篡改。
相关代码如下所示:
import base64from Crypto.PublicKey import RSAfrom Crypto.Hash import SHAfrom Crypto.Signature import PKCS1_v1_5 as PKCS1_signaturefrom Crypto.Cipher import PKCS1_v1_5 as PKCS1_cipherdef get_key(key_file): with open(key_file) as f: data = f.read() key = RSA.importKey(data) return keydef rsa_public_check_sign(text, sign): publick_key = get_key("demo_public_key.pem") verifier = PKCS1_signature.new(publick_key) digest = SHA.new() digest.update(text.encode("utf8")) return verifier.verify(digest, base64.b64decode(sign))public_key = get_key("demo_public_key.pem")with open("poetry.txt", "r", encoding="utf-8") as input_file: data = input_file.read() signfile = open("sign.txt","r") sign = signfile.read() print(rsa_public_check_sign(data,sign))with open("poetry-modify.txt", "r", encoding="utf-8") as input_file: data = input_file.read() signfile = open("sign.txt","r") sign = signfile.read() print(rsa_public_check_sign(data,sign))
poetry.txt将验证结果为真。而对petry.txt修改后的poetry-modify.txt的验证失败,从而达到了防篡改的作用。
Python工具箱系列(十九)
Linux发布6.1稳定版:进一步提升国产LoongArch架构CPU支持
婆婆给刚出生9天宝宝喂米糊引热议 医生称太离谱:回击这是习俗 科学靠边
世界杯决赛用球亮相:取名“梦想”、内藏高科技
续航轻松破1000km 哈弗H6插电混动亮相泰国:老外都叹服!
环球观热点:马斯克反悔:毫米波雷达重新上车
每日看点!建立自己的kindle书库
国产麒麟系统下基于卫星的NTP网络时间服务器方案
清江浦一行代码 & JNPF :PM2.5全程质控,精准助力建筑业污染防治
全球观热点:sentry 在加载模块时闪退
世界微头条丨零基础开启元宇宙|如何快速创建虚拟形象
Git 的基本使用——笔记
今日视点:Python爬虫实战,requests+openpyxl模块,爬取手机商品信息数据(附源码)
k8s容器内部通过Prometheus Operator部署MySQL Exporter监控k8s集群外部的MySQL
网上打字员赚钱是真的吗?网上打字员是干什么的?
鸿蒙系统3.0支持哪些手机型号?鸿蒙系统3.0怎么升级?
微博借款利息高吗?微博借款利息和借呗哪个高?
余额宝消费红包是什么意思?余额宝消费红包怎么使用?
送男客户什么礼物合适?送男客户礼物前十件排名
电脑光驱是什么东西?电脑找不到光驱驱动器怎么办?
华硕笔记本如何下载驱动?华硕笔记本驱动怎么打开?
空的文件夹占内存吗?空的文件夹为什么删不掉?
DOTA是什么意思?dota和英雄联盟的区别有哪些?
如何提高电脑性能?提高电脑性能的方法有哪些?
环球热头条丨ADB批量截图,且用时间命名
每日信息:行为管理(锐捷智慧教室)
水溶性笔是什么意思?水溶性笔和油性笔的区别是什么?
白炽灯色温是多少?白炽灯色温4000-4600K是多少度?
八字有多少种排列组合?八字有食神代表什么?
荷月是几月的别称?十二个月的别称和雅称
酒店的英语怎么说?酒店前台的工作内容是什么?
全球关注:CAD.NET 批量打印、导出DPF
精选!为解决微信加群或拉人建群的痛点,我用时一个多月写了一个小程序
c++ 如何做出实现一组数据的实际索引
短信+邮箱验证码登录
今亮点!go-dongle 0.2.1 版本发布,一个轻量级、语义化的 golang 编码解码、加密解密库
当前快播:河北用上了无人驾驶农机:北斗加持 坐在屋里就把地给种了
今日要闻!奔驰、宝马、特斯拉相继取消收音机!广播公司担忧:有隐患
换机周期将创历史新高:长达43个月 你多久换一次?
波音、空客狂喜 印度将签史诗级飞机订单:一次买下500架
天天实时:创建全国首个ICU!我国重症医学奠基人陈德昌离世 享年90岁
【当前独家】公司产品太多了,怎么实现一次登录产品互通?
【世界新要闻】2799元配酷睿i5!小米迷你主机将开启众筹 便宜900元条件公布
环球热门:小米13黑色版图赏:直屏直边手感秒杀iPhone 14!
真爱粉!有米粉花近万元抢了两台小米13
世界快资讯:好评率超99% 小米MIX Fold 2推出月光银配色 雷军:镜面效果令人惊叹
天天热点评!比RTX 4090便宜5000 AMD RX 7900系列显卡年底供货20万块:备货充足
小米13系列供不应求!线上已售罄 3999元起
环球即时:差价1000元!一文了解小米13和13 Pro区别
世界观察:NASA猎户座登月飞船成功返回地球:美国完成重返月球第一步
环球观天下!手机“毒瘤”微信终于修复!转发文件多次保存问题解决:不占空间了
天天微头条丨算了吧!电脑RGB光效好看不好玩
59岁李连杰晒照引网友围观 “功夫皇帝”定居国外略显苍老
世界看热讯:Git从入门到实战
Python 基于xml.etree.ElementTree实现XML对比
天天微资讯!飞链云智能机器人-基于ChatGPT的有趣问答
穷人入侵TikTok直播间:躺着就能赚钱 真爽
焦点热讯:为了帮梅西赢球 我敲了一晚上的电子木鱼
环球速递!2022贺岁档总票房突破4亿!《阿凡达2》势不可挡 最快破亿
GPU CPU向量加法时间测试
快播:雷军运气爆棚:在小米手机官方活动 中奖一台小米13
世界资讯:小米音质最好智能音箱!小米Sound Pro开箱图赏
Windows OpenGL 图像透明度调节
焦点热文:异步批处理教程
小米首款万兆路由发布:1799元
天天速递!只要699元!小米旗舰降噪耳机Buds 4发布:HiFi音质
小米8款新品价格汇总:3999元的小米13爱不爱?
全球新资讯:雷军:只有两家做双尺寸双高端 一家是苹果 一家是小米
小米13正式亮相:金属直边 继续对标iPhone!
今亮点!3999元起!小米13正式发布:黄金尺寸小屏、满血徕卡镜头
不涨价 小米13价格良心了:顶配12+512GB还便宜200元
全球微动态丨小米13 Pro正式亮相:中框仅仅3.2毫米!科技纳米皮手感无敌
焦点消息!ELK+FileBeat日志分析系统
快看点丨差错控制
全球信息:Intel显卡驱动即将大更新!DX9、DX11老游戏有惊喜
环球快资讯:MIUI 14“剃刀计划”砍向应用臃肿:微信文件重复存储问题终于解决
全球快看点丨全新界面 系统大幅精简!MIUI 14正式发布
【世界聚看点】使webworker中支持使用import导入模块——threads.js
世界速看:说人话系列:DOM(Document Object Mode)究竟是怎么来的呢?
环球快报:俞敏洪称不敢进高档美发店:一顿好酒肉没有了 心疼
当前热点-达尔文错了?螃蟹竟在地球上出现了5次
全球新资讯:时间轮 (史上最全)
【天天聚看点】雷军晒小米13生产过程 由小米智能工厂全自动化装配
百事通!Intel独立显卡不做了?掌门人一句话 放心了!
长安深蓝SL03宣布涨价:预计上调2000元-8000元
环球快讯:沉船捞出165年前牛仔裤80万卖出:更有数不清的黄金
SpringMVC执行流程
全球快资讯丨任务调度系统-业务线资源隔离
天天微速讯:echarts设置暂无数据
老版本微博下线倒计时!新版已无法返回老版本
舒适降噪的天花板 索尼WH-1000XM5耳机跌破2000元
全球视点!苹果把果链撤出中国?难度可是地狱级的
天天滚动:SQLyog连接MYSQL时报错 Client does not support authentication protocol requested
世界快报:小米发布米家智能小厨宝7L S1:2000W速热、1年省电100度
播报:男子将手机改装成“偷拍神器”:摄像头改到耳机插孔 赚了30万
世界资讯:我迟早被这些AI绘画笑死
世界快报:买不到抗原检测试剂盒怎么办?不要慌
重点聚焦!Intel A750显卡新驱动性能实测:《CS:GO》帧数飙升79%
公众号附件怎么添加?还在用阅读原文的方式来添加吗,你已经落伍啦,现在大家都在用这个新方法,不仅方便还省事!
TabControl控件的简单使用-添加tab