基于Python设计的CRC-16 校验码计算器

07-04 1577阅读

基于Python设计的CRC-16 校验码计算器,CRC16离线计算器。

缘由:某日在做测试时,发现某位网友的CRC计算器无法正常使用了,哇,怎么回事?经过排查,感情他那工具是需要调用网络接口的,实际是个网页在线CRC计算器。不巧的是本人电脑刚搬迁过来,网络未通,网线还没有,遂,自己动手搓一个。于是诞生了这个。

本人不保证该作品没有bug,也没有经过严谨的测试验证,在任何情况下,无论因何种原因,本人均不承担因使用本程序或者代码所造成的任何直接、间接、特别、附带或间接损失的赔偿责任。

一、使用说明

  1. 双击 “CRC16_Calculator.exe” ,运行程序,会弹出程序窗口。
  2. 按照你的需求填写数据,点击计算即可显示结果。
  3. 程序界面如下:

    基于Python设计的CRC-16 校验码计算器


仓库地址:Gitee

下载地址:发布

URL :https://gitee.com/zerone_space/crc16_calculator

下载: https://gitee.com/zerone_space/crc16_calculator/releases/tag/v1.0.1-beta

二、源码使用[only for programmer]

1、安装python

Python 安装

2、测试、运行

git clone https://gitee.com/zerone_space/crc16_calculator
cd crc16_calculator
python CRC16_Calculator.py

4、打包

4.1、安装虚拟环境
pip install pipenv

Tips:首次使用需要 pipenv 安装

4.2、进入虚拟环境
pipenv shell
4.3、在虚拟环境中安装 pyinstaller 打包工具
pip install pyinstaller -i https://pypi.doubanio.com/simple --trusted-host pypi.doubanio.com

Tips:每次重新打包都需要安装

4.4、在虚拟环境中使用pyinstaller打包成可执行文件(.exe)
pyinstaller -F -w -i logo.ico ./src/CRC16_Calculator.py
4.5、完成打包,退出虚拟环境,再删除虚拟环境
exit
pipenv --rm

Tips:不删除虚拟环境也是可以的,这样下次重新打包,

则不需要重新安装 pyinstaller

附录

from tkinter import *
from tkinter import messagebox
#font_str = "Times New Roman"
font_str = "阿里巴巴普惠体"
#font_str = "Source Han Sans CN"
# 按位(bit)反转,
def reverse(din,len_din):
    din_bin=bin(din)
    din_bin_str=str(din_bin)
    dout_bin_str=''
    for i in range(len_din): 
      if (i > 1
                    crc16 = crc16^poly
                else:
                    crc16 = crc16 >> 1
            if (refout == 0):
                result = hex(reverse(crc16,16))
            else:
                result = hex(crc16)
            if highfirst == 0:
                result = hex(exchange(result))
            binstr = '{:016b}'.format(int(result,16))
            self.resbin.set(str(binstr))
            result = result[2:]
            self.result.set('0x'+str(result).upper())
            print('Hex_Res:' + '0x'+result.upper())
            print('Bin_Res:' + binstr)
    def textfmt(self):
        plaintext = self.entry01.get()
        print(plaintext)
        import re
        plaintext = re.sub(r'[^0-9a-fA-F]','',plaintext)
        result = ' '.join(plaintext[i:i+2] for i in range(0, len(plaintext), 2))
        self.hexstr.set(result)
if __name__ == '__main__':
    root = Tk() 
    sw = root.winfo_screenwidth()
    sh = root.winfo_screenheight()
    w = 600
    h = 220
    x = (sw-w)/2
    y = (sh-h)/2
    root.geometry("%dx%d+%d+%d" %(w,h,x,y))
    root.title('CRC-16 离线计算工具')
    root.resizable(0,0)
    #root.iconbitmap('../logo.ico')  
    Application(master=root)
    root.mainloop()
VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]