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

做读书笔记的网站怎样看一个网站做的网络广告

做读书笔记的网站,怎样看一个网站做的网络广告,cms影视系统,网站建设标书范本前文 使用socket实现局域网不同主机通信 SHA256算法的实现和消息的哈希散列值计算 python实现RSA算法#xff0c;对数据进行加密认证 文章目录数字签名与认证攻击类型算法选择实现流程总结数字签名与认证 什么是数字签名#xff1f; 签名我们大家都知道#xff0c;A在纸上签…前文 使用socket实现局域网不同主机通信 SHA256算法的实现和消息的哈希散列值计算 python实现RSA算法对数据进行加密认证 文章目录数字签名与认证攻击类型算法选择实现流程总结数字签名与认证 什么是数字签名 签名我们大家都知道A在纸上签上自己的名字其余人在纸上看到A的签名确认是A的字迹那么就可以确定这个签名是A留下的。   但是如何确保这是A本人签上去的而不是第三方伪造的呢   这要依赖于A的习惯和字迹是有鲜明特征与他人不同的。可在经过反复训练后第三方仍然可以模仿A的字迹进行签名。   数字签名同样是代表A身份的一个签名但是由于数据量的庞大第三方几乎不可能或者说短时间内不可能伪造出A的签名这在一定程度上比我们一般知道的手写签名要安全、可靠。 加密和解密   在密码学中我们有一套加密方法与之对应有一套解密方法发送方使用加密方法对信息称作明文加密加密后的信息形成密文将密文暴露在公共环境下任何人都可以有机会获得这条密文。但是加密后的密文与明文几乎没有关联没有经过授权的人无法解读密文的内容而授权用户对密文进行解密得到明文原文才能读懂信息。 认证   上述已经了解到什么是解密和解密但是在这个过程中发送方无法确定接收方能否接收到信息并解密。接收方也无法确定消息是否真的是发送方发送而不是第三方伪造。   也就是说发送方可以抵赖发送这条消息的真实性接收方无法确认这条消息是否被主动攻击过伪造、篡改。   或许你已经想到有一个可靠的第三方来确认双方的身份和消息的安全但这也不是绝对安全因为问题转到了如何确认可靠的第三方是否可靠上面。   现在介绍一种方法先将要发送的消息M经过不可逆的运算变成H。确保在得到H后无法反推出原文M确保每一个原文M都只对应唯一一个H当原文发生任何改变后得到的H都完全不一样。随后发送方使用自己的签名方法对H进行加密形成密文C。原文M和密文C一起发送给接收方。接收方接收到M和C使用同样的不可逆算法计算M得到H再对C使用与发送方签名方法相对应的解密方法进行解密得到D对比D和H如果D和H一样则认证成功。   在这个过程中这条消息无法被修改因为任何一点的改动都会导致产生很大差别的H。同时发送方无法抵赖他发送过这条消息的存在性因为H唯一而且只有发送方才能对H签名成C也是不可修改的接收方收到的C解密后与H一致。 那么这和游戏充值有什么关系呢不难发现网络支付都需要这种手段去认证支付记录。假设A要想B发起一笔交易B想要认证这笔交易的完整性和这笔交易确实是A发起的就需要上述签名认证技术。 攻击类型 如果第三方要伪造信息和签名方法需要找到一条和发送方发送的信息不一样但是经过不可逆算法计算出来的一样。或者根据已知的发送信息和签名后的逆推出发送方使用的签名方法。 算法选择 计算消息的唯一对应值可以说是信息摘要可以使用的是MD5、DES、SHA等算法但是这些算法不是绝对可靠的表现在他们会发生碰撞两个不同的消息得到相同的信息摘要。对摘要进行加密可以使用RSA和ECC。   在本文实现中采用SHA256和RSA方法前文链接SHA、RSA。同时我们要模拟发送方和接收方在网络上进行数据的传输使用到网络连接的方法。 实现流程 首先需要模拟一个发送方和一个接收方它们在网上进行在线支付那就使用网络连接协议创建一个游戏官方服务器和一个终端玩家。   当玩家在游戏内点击充值时游戏的服务器给玩家发送这样的请求你给我支付648人民币我给你时装道具。游戏官方确认这笔交易并对它进行签名发送给玩家。玩家接收到后确认这笔交易的完整确认发起方是游戏官方才进行交易的下一步。   在服务器端服务器对交易的内容实验SHA256计算散列值根据RSA算法使用自己的秘钥对散列值签名将交易和签名后的数据拼接在一起回送给玩家。   玩家接收到回送数据后检验该数据是否正确如果服务器的身份合法则进行后续操作。 服务器端 def udpServer(address,port8686):# dgram代表udp方式server socket.socket(socket.AF_INET, socket.SOCK_DGRAM)server.bind((address, port))print(Server start)while True:data, ad server.recvfrom(1024)# 处理接收到的数据print(receive from : , ad, data: , data)ret serverProcess(data)print(send back: ,ret)server.sendto(ret,ad)c [chr(data[i]) for i in range(5)]if .join(c) close:breakserver.close()print(Server close)def serverProcess(msg):msg msg.decode(gbk)ret if msg 充钱648块钱:deal 你给我648块我就给你道具bt deal.encode(gbk)bt byte2str(bt)ret chargel len(bt)if len(str(l)) 8:l 0*(8-len(str(l))) str(l)else:l str(l)ret l bthash_index int(mySHA256(bt),16)e n 0with open(e.txt, r) as f:e int(f.read())with open(n.txt, r) as f:n int(f.read())c quickPowerMod(hash_index,e,n)ret str(c)return ret.encode(utf-8)if __name__ __main__:address localhostport 8686udpServer(address,port) 玩家端 def process(msg):msg msg.decode(utf-8)if msg[:6] charge:deal_len int(msg[6:14])deal msg[14:deal_len14]print(deal detail: , str2byte(deal).decode(gbk))c int(msg[deal_len14:])cal_index mySHA256(deal)with open(d.txt, r) as f:d int(f.read())with open(n.txt, r) as f:n int(f.read())de_index quickPowerMod(c,d,n)de_index hex(de_index)[2:]print(计算的哈希值: ,cal_index)print(解密的哈希值: , de_index)if de_index cal_index:print(是合法的官方)else:print(非法数据)if __name__ __main__:address localhostport 8686message 充钱648块钱bt message.encode(gbk)receive udpSend(address, port, bt)process(receive)玩家端结果 总结 使用了SHA、RSA和SOCKET实现网络支付的一般流程不足之处是欠缺许多功能。
http://www.zqtcl.cn/news/151522/

相关文章:

  • 推广网络网站潜江资讯网一手机版
  • 凡科网站自己如何做毕设 做网站
  • 一起做网站逛市场百度权重查询网站
  • 专业网站优化推广网站核查怎么抽查
  • 牡丹江站salong wordpress
  • 网站建设公司做网站要多少费用有哪些外国网站国内可以登录的
  • 天津建站平台网页制作免费的素材网站
  • 建设网站需要专业哪个企业提供电子商务网站建设外包
  • 公司网站建设及维护网站建设思维
  • 那个网站可以学做西餐17做网站广州沙河
  • 品牌网站建设哪里好京东网站建设案例
  • 亚马逊海外版网站深圳市工商注册信息查询网站
  • 新乐做网站优化网站上漂亮的甘特图是怎么做的
  • 新网站应该怎么做seo品牌推广方案思维导图
  • 想要网站导航推广页浅谈中兴电子商务网站建设
  • 免费引流在线推广成都网站优化费用
  • 老河口市网站佛山市点精网络科技有限公司
  • word模板免费网站seo引擎优化是做什么的
  • 办网站怎么赚钱鄠邑建站 网站建设
  • 宜春网站建设推广微信小程序开发
  • 巴南城乡建设网站免费网站建设软件大全
  • 湖南网站建设公公司没有自己的网站
  • 刚建设的网站如何推广网站恢复正常
  • 怎么做制作网站的教程永久免费空间免备案
  • 网站维护运营怎么做简单的手机网址大全
  • 网站建设规划设计公司排名使用模块化的网站
  • 南宁网站seo大概多少钱门户网站建设公司渠道
  • 如何建国际商城网站海门做网站公司
  • 做网站应该画什么图注册子公司流程及所需资料
  • 嵊州市建设银行网站怎么自己做游戏软件