1609|1

7172

帖子

195

TA的资源

五彩晶圆(高级)

楼主
 

【STM32H5开发板】第九篇 硬件HASH工程测试 [复制链接]

 

 

单向散列算法单向散列算法,又称hash哈希函数,Hash函数(也称杂凑算法)就是把任意长的输入消息串变化成固定长的输出串的一种函数,该过程是不可逆的。Hash函数可用于数字签名、消息的完整性检测、消息起源的认证检测等。较为常用的方法包括MD算法和SHA算法。

 

STM32的哈希模块 Hash,支持的哈希算法有:SHA-1, SHA-224, SHA-256等

集成该哈希硬件加速模块的STM32系列

 

 

 

SHA(Secure Hash Algorithm)安全散列算法SHA是一个密码散列函数家族,SHA算法主要分为SHA-1、SHA-2、SHA-3 三大类,

一般使用SHA-2算法,主要有SHA-256、SHA-512、SHA-224、SHA-384四种,对于嵌入式一般选择SHA256,将任意长度的输入压缩成256位,且哈希碰撞的概率近乎为0。

应用场景:数字签名、数字时间戳、数字证书。

SHA256一般嵌入式系统签名或者校验复杂版使用SHA256,也就是长度小于2^64字节的任意数据,经过哈希运算得到256比特的消息摘要。

 

 

具体HASH算法的原理太复杂了,我也看不下去了,直接看看怎么用吧

 

一通过CUBE生成HASH的基本工程

 

 

 

 

SHA可以选择很多类型,比如SHA1等

这里选择SHA256

其它配置都是选择之前工程的

 

二加密工具测试下 SHA256的结果

 

 

三下面开始自己加自己的代码

 

加入定义

 

 

添加测试代码


 

if (HAL_HASH_Start_IT(&hhash, (uint8_t*)aInput, strlen((char const*)aInput), aSHA256Digest) != HAL_OK)

  {

    Error_Handler();

  }

  while (HAL_HASH_GetState(&hhash) != HAL_HASH_STATE_READY);



 /* Compare computed digest with expected one */

  if(memcmp(aSHA256Digest, aExpectSHA256Digest, sizeof(aExpectSHA256Digest)/sizeof(aExpectSHA256Digest[0])) != 0)

  {

    Error_Handler();

  }

  else

  {

    HAL_GPIO_WritePin(GPIOF,GPIO_PIN_4,GPIO_PIN_SET);

  }

 

先计算再比较

 

查看现象,灯亮,工作正常。

 

 

 

 

此帖出自stm32/stm8论坛

最新回复

HASH算法的原理确实复杂看不懂,看楼主的应用还是明白多了   详情 回复 发表于 2023-6-3 10:40
点赞 关注
 

回复
举报

6609

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

HASH算法的原理确实复杂看不懂,看楼主的应用还是明白多了

此帖出自stm32/stm8论坛
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表