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

最新案例教程点击下方链接跳转,CSDN已停止更新

点击跳转HaaS506官方最新案例







简介

哈希(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()

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

返回值:

  • 返回加密后字节类型的数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值