1、简介
RNG随机数字生成器,一些MCU会内置此类硬件外设用于生成长度为4个字节的随机数,在加密算法中,随机数用于生成加密密钥、初始化向量(IV)等。高质量的随机数对于保证加密系统的安全性至关重要,如果随机数的质量不高,攻击者可能通过分析随机数的规律来破解加密信息。以下使用STM32L4主控芯片,介绍RNG硬件外设使用的操作步骤:
2、cubemx配置
勾选RNG外设,默认无cubemx设置参数,不使用RNG的NVIC配置

3、程序设计
/* USER CODE BEGIN 2 */
uint32_t num=0;
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
if(HAL_RNG_GenerateRandomNumber(&hrng,&num)==HAL_OK){//调用随机数生成器,生成32字节随机数
printf("random_num = %d\n",num);
}
else{
printf("RNG Error!\n");
}
HAL_Delay(800);
printf("Hello.\n");
HAL_GPIO_TogglePin(USER_LED1_GPIO_Port, USER_LED1_Pin);
}
/* USER CODE END 3 */4、实验效果
32字节随机数计算输出
![1744980959952513.png D3(YUL9KECBKBFL)2]]BRUH.png](http://uphotos.eepw.com.cn/1709346044/pics/1744980959952513.png)
我要赚赏金
