STM32F7微控制器的散列功能与资源访问问题解决方案

需积分: 46 149 下载量 168 浏览量 更新于2024-08-05 收藏 20.95MB PDF 举报
"STM32F7系列微控制器的散列处理特性和SpringBoot打包后读取资源文件问题" 在STM32F7系列微控制器中,散列处理是一种重要的安全特性,它支持多种散列算法,包括SHA-1、SHA-224、SHA-256以及MD5。这些算法广泛应用于数据验证,因为它们符合FIPS PUB 180-2(联邦信息处理标准出版物180-2)和IETF RFC 1321(互联网工程任务组征求意见文档编号1321)等标准。STM32F7的散列处理器能够快速计算这些算法,适用于不同应用场景。 该处理器有以下主要特性: 1. 兼容SHA-1、SHA-224、SHA-256和MD5算法,可以处理长达(2^64 - 1)位的消息,生成不同长度的消息摘要。 2. 支持32位数据字输入,可以处理字、半字、字节和位位串的数据表示形式,但仅支持小端模式。 3. 自动交换功能,使得大端模式下的SHA-1、SHA-224和SHA-256计算得以实现。 4. 自动填充功能,以适应512位(16×32位)的消息摘要计算模数。 5. 提供8个32位字(H0到H7)用于输出消息摘要,中断后可以继续之前未完成的计算。 6. 摘要计算时,连续消息块的32位字会相加,形成整个消息的摘要。 7. 内置数据流控制,支持直接存储器访问(DMA)操作。 关于SpringBoot应用程序打成jar运行后无法读取resources里的文件问题,这通常是由于SpringBoot默认的类路径加载机制导致的。当项目被打包成jar文件时,静态资源和配置文件会被包含在jar的内部,而不是像在开发环境中那样存在于文件系统中。要解决这个问题,可以采取以下策略: 1. 使用`Class.getResource()`或`Class.getResourceAsStream()`方法来直接从类路径加载资源。 2. 配置SpringBoot的`spring.resources.add-mappings=false`,以阻止Spring Boot将静态资源映射到HTTP端点,然后通过Java的文件I/O API来访问资源。 3. 使用`spring-boot-devtools`模块中的`restart`类加载器,它可以映射类路径资源到临时目录,使得文件可以直接被读取。 4. 将需要读取的文件配置为外部资源,不包含在jar中,而是放在运行时环境的一个特定目录下。 确保正确配置和理解这些特性对于开发高效且安全的STM32F7应用以及优化SpringBoot应用的资源管理至关重要。