【用Python根据用户名和手机号码生成Hash值并创建.cs .h和xlsx文件】

用Python根据用户名和手机号码生成Hash值并创建C Sharp .cs、嵌入式.h和xlsx表格文件


用Python根据用户名和手机号码生成Hash值并创建C Sharp .cs、嵌入式.h和xlsx表格文件,主要是为每个用户创建一个pubkey,并输出C Sharp C#和嵌入式 Keil的工程文件 pubkey.cs和pubkey.h文件。并把用户名和手机号码记录在excel表格中。

def writeinpara():global usernameglobal emailusername=input('请输入用户名:')email=input('请输入手机号码:')print("username="+username+"; Email="+email)
#生成md5 hashh
def md5_hash(data: str) -> str:m = hashlib.md5()m.update(data.encode('utf-8'))return m.hexdigest()

下面建立目录

def createDir(dirpath,username,email):global urlurl=dirpath+username+"_"+emailif(os.path.exists(dirpath+username+"_"+email)):shutil.rmtree(url)  #删除目录,包括目录下的所有文件os.mkdir(url,0o777)

下面写入CS文件

    print("writeCSfile =",filepath)if os.path.isfile(filepath):os.remove(filepath)#encoding='utf-8-sig'    #with open(filepath, "w", encoding="utf-8") as file:with open(filepath, "w", encoding='utf-8-sig') as file:file.write(csFileStrBegin+hexdigest+csFileStrEnd)file.close()#if os.path.isfile(filepath):#    print("CS file exist,open it!")#    with open(filepath, "w", encoding="utf-8") as file:#    file.write(csFileStrBegin+hexdigest+csFileStrEnd)#worksheet = workbook.active#else:#文件不存在,创建新的Exce1文件#    print("CS file created!")

写入.h文件

def writeHfile(filepath,username,email,hexdigest):lengthint=len(hexdigest)lengthstr=str(lengthint)print("writeHfile =",filepath)if os.path.isfile(filepath):os.remove(filepath)with open(filepath, "w", encoding="utf-8") as file:file.write("#define USER_PUBKEY_LEN   "+lengthstr+"\r")file.write("#define USER_PUBKEY   \""+hexdigest+"\"\r")file.close()

写入excel文件

def writepubkey(workbook,username,email,hexdigest):#sheet = workbook.get_sheet_by_name('sheet1')sheet = workbook.active#last_row = sheet.max_row + 1# 获取当前日期和时间now = datetime.datetime.now()# 格式化日期和时间datevalue = now.strftime("%Y-%m-%d")timevalue = now.strftime("%H:%M:%S")insertData = [datevalue,timevalue, username,email,hexdigest]sheet.append(insertData)#sheet.cell(last_row+1,  column=1,value=datevalue)#sheet.cell(last_row+1,  column=2,value=timevalue)#sheet.cell(last_row+1,  column=3,value=username)#sheet.cell(last_row+1,  column=4,value=email)#sheet.cell(last_row+1,  column=5,value=hexdigest)# 保存Excel文件workbook.save(filepath)workbook.close()

视频:B站 柔贝特三哥

一个脚本工具调用Python生产pubkey和嵌入式.h文件和.cs的c#文件,调用keil和visual studio编译arm和c#的工程,执行文件拷贝功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/198350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

字符编码演变

1.基础知识   我们在计算机屏幕上看到的是实体化的字符,而计算机存储介质中存放的实际上是二进制的比特流。这两者之间有一个转换规则,类比密码学中的加密解密,从“字符”到“比特流”称之为“编码”,从“比特流”到“字符”则称…

RAG落地实践、AI游戏开发、上海·深圳·广州线下工坊启动!星河社区重磅周

飞桨星河社区在成立的5年以来,已汇集660万AI开发者,覆盖深度学习初学者、在职开发者、企业开发者、高校教师、创业者等,已成为AI领域最具影响力的社区之一,无论是AI爱好者还是AI开发者,都能在这里探索AI的无限可能。飞…

城市分站建站系统源码 全新版本SEO推广优化排名高 附带完整的搭建教程

在过去的几年中,许多企业在建立网站时面临一些共同的问题:缺乏技术支持、不懂SEO、预算有限等。这些问题导致他们的网站无法充分发挥作用,无法在搜索引擎中获得良好的排名,进而影响到企业的业务发展。小编来给大家分享一款城市分站…

编译原理词法分析:NFA转DFA(原理+完整代码+可视化实现)

NFA转换为DFA 【本文内容摘要】 什么是DFA通过子集构造法将NFA转换为DFA生成DFA的dot文件并且形成可视化。 如果本文对各位看官有用的话,请记得给一个免费的赞哦(收藏也不错)! 文章目录 NFA转换为DFA一、什么是DFA二、NFA转换为…

k8s引用环境变量

一 定义环境变量 ① 如何在k8s中定义环境变量 env、configmap、secret补充: k8s 创建Service自带的环境变量 ② 从pod属性中获取 kubectl explain deploy.spec.template.spec.containers.env.valueFrom关注: configMapKeyRef、fieldRef 和 resour…

初探Maven

文章目录 一、Maven概述二、安装配置Maven(一)下载Maven(二)安装Maven(三)配置Maven 三、IDEA里配置Maven(一)版本情况说明(二)配置构建工具Maven 一、Maven概…

如何批量修改ppt中的字体?

ppt制作已经属于是复杂的操作了,当我们想要更换ppt中的字体,有没有什么快捷的方法呢?今天分享两个方法,一键修改ppt文件字体。 方法一: 找到功能栏中的编辑选项卡,点击替换 – 替换字体,在里面…

python加速方法:纯CPU多进程加速(joblib库)

我写C 代码喜欢用OpenMP进行加速,在不更改源代码情况下只做稍稍修改即可实现CPU利用率最大化,跨平台移植也没有问题。 python是个好东西,苦恼于密级计算的时候只能使用单核,使用多线程不奏效,因为毕竟它受限于语言本身…

Javascript_根据截止日期超时自动返回

例如定时交卷功能&#xff0c;隐藏一个input id"endTime"存放超时时间&#xff0c;例如2023-12-01 20:56:15&#xff0c;使用如下代码即可实现超时自动处理。 <script src"/jquery.min.js"></script><script type"text/javascript&qu…

【Go】Go语言基础内容

变量声明&#xff1a; 变量声明&#xff1a;在Go中&#xff0c;变量必须先声明然后再使用。声明变量使用 var 关键字&#xff0c;后面跟着变量名和类型&#xff0c;如下所示&#xff1a; var age int这行代码声明了一个名为 age 的整数变量。 变量初始化&#xff1a;您可以在声…

二叉树遍历 LeetCode 1038. 从二叉搜索树到更大和树

1038. 从二叉搜索树到更大和树 给定一个二叉搜索树 root (BST)&#xff0c;请将它的每个节点的值替换成树中大于或者等于该节点值的所有节点值之和。 从图中可以看出&#xff0c;每个节点是BST右中左遍历时&#xff0c;遍历到的节点的值加上之前所有节点的值。 在遍历时可以使…

全球与中国木质颗粒燃料市场:增长趋势、竞争格局与前景展望

木质颗粒汽油的主要优点之一是环境永续性。木质颗粒被认为是碳中立的&#xff0c;因为燃烧过程中释放的二氧化碳量大约等于木材生长过程中吸收的二氧化碳量。这种封闭的碳循环减少了温室气体净排放并减轻了气候变迁的影响。作为一种可再生资源&#xff0c;木屑颗粒还可以透过促…

Python必备神器揭秘:15个最热门库全解析

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Python生态系统中拥有大量优秀的库&#xff0c;为开发者提供了广泛且强大的工具。本文将介绍15个最受欢迎的Python库&#xff0c;包括它们的功能、优点以及示例代码&#xff0c;帮助读者更全面地了解和使用这些库…

spring boot mybatis TypeHandler 源码如何初始化及调用

目录 概述使用TypeHandler使用方式在 select | update | insert 中加入 配置文件中指定 源码分析配置文件指定Mapper 执行query如何转换 结束 概述 阅读此文 可以达到 spring boot mybatis TypeHandler 源码如何初始化及如何调用的。 spring boot 版本为 2.7.17&#xff0c;my…

知识点滴 - 什么是AECS-PRM

AECS - PRM 是高级入境控制系统--旅客识别模块的缩写。该系统用于航空业&#xff0c;在登机过程中管理和核对乘客信息。AECS - PRM 有助于确保正确的乘客搭乘正确的航班&#xff0c;并加强安全措施。它可能涉及使用各种技术&#xff0c;如生物识别技术&#xff0c;以准确匹配乘…

深入理解Go语言GC机制

1、Go 1.3之前的标记-清除&#xff08;mark and sweep&#xff09;算法 Go 1.3之前的时候主要用的是普通的标记-清除算法&#xff0c;此算法主要由两个主要的步骤&#xff1a; 标记&#xff08;Mark phase&#xff09;清除&#xff08;Sweep phase&#xff09; 1&#xff09…

前端知识笔记(二十四)———快速创建桌面端(electron-egg)

介绍 | electron-egg electron-egg: 一个入门简单、跨平台、企业级桌面软件开发框架。 electron-egg是一个基于Electron和Egg.js的框架&#xff0c;可以用于快速构建跨平台的桌面应用程序。 1.兼容平台&#xff1a;electron-egg可以在Windows、MacOS和Linux等多个平台上运行…

Spark RDD使用教程

文章目录 1、创建RDD的三种方式2、Spark对RDD的操作2.1、Transformations&#xff08;转换&#xff09;2.2、Actions&#xff08;动作&#xff09; 1、创建RDD的三种方式 Spark提供三种创建RDD方式&#xff1a;集合、本地文件、HDFS文件。详细可以查看RDD和pair RDD文档 使用例…

7.Vue UI库

7.Vue UI库 7.1移动端常用的UI库 &#xff08;1&#xff09; Vant&#xff1a;Vant 4 - A lightweight, customizable Vue UI library for mobile web apps.A lightweight, customizable Vue UI library for mobile web apps.https://vant-ui.github.io/vant/#/zh-CN &#xf…

提升--22---ReentrantReadWriteLock读写锁

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 ReadWriteLock----读写锁1.读写锁介绍线程进入读锁的前提条件&#xff1a;线程进入写锁的前提条件&#xff1a;而读写锁有以下三个重要的特性&#xff1a; Reentran…