2.22 haas506 2.0开发教程 - uhashlib - 哈希算法(仅支持M320开发板)

news/2025/3/5 1:20:37/

haas506 2.0开发教程 - uhashlib - 哈希算法

  • 简介
  • 案例说明
  • 案例代码
            • 测试结果
  • class - uhashlib
            • hmacsha1- 创建一个带密钥的sha1哈希对象
            • sha1 - 创建一个SHA1哈希对象
            • sha256 - 创建一个SHA256哈希对象
            • md5 - 创建一个MD5哈希对象
            • update - 将更多的数据加到散列队列中
            • digest - 返回通过哈希传递的所有数据的散列

简介

哈希(Hash)它是一种基础数据结构。Hash 表是一种特殊的数据结构,它与数组、链表以及二叉排序树等相比较有很明显的区别,但它又是在数组和链表的基础上演化而来,既具有数组的优点,又具有链表的优点。能够快速定位到想要查找的记录,而不是与表中存在的记录的关键字进行比较来进行查找。应用了函数映射的思想将记录的存储位置与记录的关键字关联起来,从而能够很快速地进行查找。

案例说明

本案例介绍haas哈希算法接口,实现二进制数据散列算法,支持sha256,sha1,MD5。

案例代码

main.py

import uhashlib
import ubinascii
import utime
# 工具网站 http://encode.chahuo.com/# 创建hash对象
hash_obj  = uhashlib.hmacsha1()  
#将数据加到散列队列中
hash_obj.update("haas506","hmacsha1example")
# 返回数据的散列
data = hash_obj.digest()
print(data)
#将二进制数据转换为十六进制字符串表示
hex_msg = ubinascii.hexlify(data)
print(hex_msg)
while True:utime.sleep(1)
测试结果
b'JUh\xb6\xf2J\x96\xbf\xa8f\xe6$\xc2\x81s\xe2\xcd\xec\xab\x95'b'4a5568b6f24a96bfa866e624c28173e2cdecab95'

class - uhashlib

hmacsha1- 创建一个带密钥的sha1哈希对象

参数原型:

  • hash_obj = uhashlib.hmacsha1(key,bytes)

参数说明:

参数类型必选参数?说明
keybytes加密密钥
bytesbytes可在创建时传入bytes数据,也可通过update方法更新

返回值:

  • 加密后的SHA1哈希对象
sha1 - 创建一个SHA1哈希对象

参数原型:

  • hash_obj = uhashlib.sha1(bytes)

参数说明:

参数类型必选参数?说明
bytesbytes可在创建时传入bytes数据,也可通过update方法更新

返回值:

  • SHA1哈希对象
sha256 - 创建一个SHA256哈希对象

参数原型:

  • hash_obj = uhashlib.sha256([bytes])

参数说明:

参数类型必选参数?说明
bytesbytes可在创建时传入bytes数据,也可通过update方法更新

返回值:

  • SHA256哈希对象。
md5 - 创建一个MD5哈希对象

参数原型:

  • ​hash_obj = uhashlib.md5(bytes)

参数说明:

参数类型必选参数?说明
bytesbytes可在创建时传入bytes数据,也可通过update方法更新

返回值:

  • MD5哈希对象
update - 将更多的数据加到散列队列中

参数原型:

  • hash_obj.update(bytes)

参数说明:

参数类型必选参数?说明
bytesbytes需要被加密的数据
digest - 返回通过哈希传递的所有数据的散列

参数原型:

  • hash_obj.digest()

注意:调用此方法后,无法再将更多的数据送入散列。

返回值:

  • 返回加密后字节类型的数据

http://www.ppmy.cn/news/561909.html

相关文章

juniper M320设备日志采样

日志采用 set forwarding-options sampling input family inet rate 1000 set forwarding-options sampling input family inet max-packets-per-second 4500 set forwarding-options sampling output flow-inactive-timeout 15 set forwarding-options sampling output flow-a…

5.32 综合案例2.0 - TTS语音云播报(支持M320开发板)

HaaS506 - TTS语音云播报 简介准备硬件接口代码流程功能实现1、物联网平台开发2、设备端开发代码调试 3.应用平台开发3.1新建‘普通项目’3.2关联产品和设备3.3新建移动应用 简介 用python开发板写的云喇叭,文字转语音,附教程源码 手机端发送文字&#x…

MongoDB University课程M320 Data Modeling 学习笔记

讲数据模型,课程介绍参见这里。 Chapter 1: Introduction to Data Modeling 需要具备的基础知识 MongoDB Concepts and Vocabulary Database and Collection in MongoDB Performing joins with $lookup Relational Database Concepts and Vocabulary Table (W…

学计算机的雷蛇与苹果,雷蛇做了什么 让学霸苹果也抄袭他了

【IT168 资讯】苹果总是以那种:永远被抄袭却从未被超越的姿态展示在世人面前,似乎苹果就是那种不作弊的学生,永远只有他被抄作业却从来没有抄袭别人。不过这种观点,笔者只能说图样图森破!你肯定没见过比苹果还优秀的学生。 最近网…

CVE-2019-13142:雷蛇影音软件(Razer Surround)的权限提升漏洞

软件版本:Razer Surround 1.1.63.0 操作系统版本:Windows 10 1803(x64) 漏洞说明:Razer Surround软件中文件夹设置缺陷导致的权限提升 目的 我希望这篇文章能鼓励更多的人加入漏洞研究这个看似很困难的领域。虽然这…

绕过雷蛇官网的动态验证码

大家好,我是dhakal_ananda,来自尼泊尔,这是我在Hackerone上参加的雷蛇漏洞悬赏项目的一部分。一开始这个漏洞悬赏项目是一个非公开项目,我接到邀请后并没有参加;后来它变成了公开项目,我反而对它起了兴趣。…

铸博皇御:炒黄金入门这几点别忽略

炒黄金和投资股票一样,也是一种高风险回报大的投资方式。但无论如何,新手投资黄金须谨慎,一定要做好风险抵抗。那么,炒黄金入门需要注意哪几点呢? 任何投资都需要遵循一定的规律,开始以为很简单&#xff0c…

自媒体应该怎么入门,这几点教会你

2022年了,才开始做自媒体还来得及吗?答案是一定来得及,现在自媒体发展相对来说是比较成熟的阶段,那么自媒体新手应该怎么入门,下面这几点教会你! 1、了解各平台机制 每个平台的机制是不同的,选…