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

这个网站的建设流程怎么把网站做成手机版的

这个网站的建设流程,怎么把网站做成手机版的,wordpress 模板检测,台州网站开发目录 1.数据的不同表现形式签名值不一样? 2.Binascii模块简介 3.问题定位 4.问题总结 1.数据的不同表现形式签名值不一样? Happy Muscle试运行了一段时间,组内同事再一次提出了新的需求:需要对bin文件签名。 PS:服…

目录

1.数据的不同表现形式签名值不一样?

2.Binascii模块简介

3.问题定位

4.问题总结


1.数据的不同表现形式签名值不一样?

Happy Muscle试运行了一段时间,组内同事再一次提出了新的需求:需要对bin文件签名。

PS:服了,你把bin导成asc文件再签名不行吗?

不过,内部客户也是客户,就是上帝,还是抓点紧,继续完善工具。

这个思路还是很明确:拖转bin文件到输入框,显示路径供用户检查;后台根据路径识别bin文件,解析成算法所需格式,最终完成签名。

前几步还是非常简单,问题出在解析bin文件转为算法所需格式上,现象如下:

将bin文件解析为算法所需格式并打印出来,完全木有问题呀(上图红框),为啥这个签名值不对头呢?

  • Openssl 签名值: 
  • HappyMuscle对原始数据签名:

  • HappyMuscle解析bin后的签名:

 那问题就出在了对原始数据和bin文件的解析上,来看代码:

if self.rb_rsa_genkey_2.isChecked() :filepath = self.te_rsa_plaintext.toPlainText()[8:]binfile = open(filepath,'rb').read()asymobjcal.rsa_pt = binascii.b2a_hex(binfile)
else:asymobjcal.rsa_pt = binascii.unhexlify(self.te_rsa_plaintext.toPlainText().strip().replace('\n','').replace('0x', '').replace(',','').replace(' ',''))

2.Binascii模块简介

这里用到了binascii模块,该模块包含许多在二进制和各种ascii编码的二进制表示之间进行转换的方法,常见方法总结如下:

  • binascii.b2a_hex(data[, sep[, bytes_per_sep=1]])

将二进制数据转为十六进制的表现形式,如下:

>>> binascii.b2a_hex(b'\xb9\x01\xef')
b'b901ef'

sep可以是单个符合或者字节对象,如果配置了,就会在步长(bytes_per_sep)后加入符号,如下:

>>> binascii.hexlify(b'\xb9\x01\xef', '-')
b'b9-01-ef'
>>> binascii.b2a_hex(b'\xb9\x01\xef', b'_', 2)
b'b9_01ef'
>>> binascii.b2a_hex(b'\xb9\x01\xef', b' ', -2)
b'b901 ef'

 方法hexlify(data[, sep[, bytes_per_sep=1]]),有同样的效果。

  • binascii.a2b_hex(hexstr)

很明显,这个就是返回十六进制字符串hexstr表示的二进制数据,就是b2a_hex()的逆向,返回的是data。

  • binascii.crc32(data[, value])

用于计算data的CRC-32的校验和,如下:

print(binascii.crc32(b"hello world"))
# Or, in two pieces:
crc = binascii.crc32(b"hello")
crc = binascii.crc32(b" world", crc)
print('crc32 = {:#010x}'.format(crc))

在给文件或者数据签名时, 所需要的数据类型为bytes,

那么问题就很好定位了。

3.问题定位

在代码实现里,如果是以bin的形式加载进来,我是先读取文件再转为调用b2a_hex,打印出来:b'0008022079.....',类型为byte,然后再去签名,

但在这个时候我们来查看rsa_pt的类型:

 字节长度居然来到了4880,再回过头看文档,这句话非常关键:

Return the hexadecimal representation of the binary data. Every byte of data is converted into the corresponding 2-digit hex representation. The returned bytes object is therefore twice as long as the length of data.

转为十六进制表现形式长度为原来的两倍!!!

回过头来,既然我都可以调用b2a_hex(),那说明现在binfile类型本身就是byte,我们debug来看下:

这个字节长度就是没问题的,直接将这个文件读取在送入签名就可以了,解决如下:

asymobjcal.rsa_pt = open(filepath,'rb').read()

最终完成签名:

4.问题总结

这个问题归根结底还是在于自己对于模块各种方法的返回类型不够了解,在使用python时基本都是边写边查,也没有仔细看官方文档。

通过解决这个小问题,Happy Muscle功能进一步增强,就酱!!

http://www.yayakq.cn/news/325955/

相关文章:

  • 建立公司网站网站设计费用多少钱
  • 网站开发者账号购买整站营销系统
  • 手机端网站建站玉林网站设计
  • 如何注销网站备案负责人网站导航栏全屏怎么做
  • 网站制作手机版公司网站建设接单
  • 国内好的网站设计西安seo顾问
  • 创业过程中网站建设做暧在线观看网站
  • 做的视频发到哪个网站好企业网络推广分析论文
  • 祥云平台官方网站做网站找个人还是找公司
  • vr网站建设住房建设部官方网站设计费计取
  • 网站开发公司合作协议书找做金融的网站
  • 手机网站关键词优化软件wordpress菜单分类目录
  • 网站开发从整体上自己怎么给网站做优化排名
  • 网站自适应布局 html5如何安装wordpress主题
  • 常州公司网站建设多少钱seo兼职怎么收费
  • 网站推广软件赚钱难吗?手机app是用什么软件开发的
  • 网站你应该明白什么意思吗网页制作素材网站
  • python 网站开发教程南通网站制作计划
  • 网站建设吴江利用地图建网站
  • 长兴县网站建设阿里云网站建设 部署与发布考试
  • 自己建设一个网站软件洞泾做网站
  • 陕西省建设网官网住房和城乡厅官网河北网站优化建设
  • 温州论坛网站首页温州网站建设得花多少钱
  • 怎么看网站用什么平台做的怎样做当当网站代理
  • 怎么做电商赚钱北京网站优化什么价格
  • 网站建设和考核工作通知访问最多技术网站排名
  • 网页设计与网站规划设计师找工作的网站
  • 亚马逊 网站建设品牌营销理论有哪些
  • dede网站qq类资源源码沈阳微网站建设
  • 深夜小网站做仿牌网站被封