imx6ull开发板,HTTP 下载升级包,MD5 校验测试。( 第四篇 )
结合上一篇 文章,本文 学习 MD5 校验。
电脑做服务器,开发板做客户端。
客户端从服务器下载升级包,如果下载过程中断、丢包,客户端又不做校验,用损坏的文件做系统升级,会导致升级失败,校验是最后一道安全门。
下面是 MD5 、SHA256 对比:
|
|
MD5 |
SHA256 |
|
全称 |
Message Digest 5 |
Secure Hash Algorithm 256 |
|
输出长度 |
128 位(32 字符) |
256 位(64 字符) |
|
速度 |
快 |
稍慢 |
|
安全性 |
已破解,有碰撞 |
目前安全 |
|
碰撞风险 |
高(可伪造相同 MD5 的文件) |
极低 |
|
计算开销 |
极低 |
低 |
怎么选择?
|
场景 |
推荐 |
原因 |
|
文件完整性校验(防下载损坏) |
MD5 |
够用,快 |
|
OTA 固件签名/防篡改 |
SHA256 |
安全,防恶意替换 |
|
密码存储 |
SHA256 + 盐 |
MD5 不安全 |
|
嵌入式小文件 |
MD5 或 SHA256 |
性能差异可忽略 |
命令示例:
|
|
MD5 |
SHA256 |
|
生成 |
md5sum file > file.md5 |
sha256sum file > file.sha256 |
|
校验 |
md5sum -c file.md5 |
sha256sum -c file.sha256 |
|
安全性 |
低(有碰撞风险) |
高(工业标准) |
本文先用 MD5 做测试 ,文件完整性校验(防下载损坏)
现在开始测试:
开发板和电脑 连接同一个wifi,让开发板和电脑在同一网段,确保开发板能ping通电脑的 ip

第一步:
在 虚拟机 ,内核 设备树 生成 MD5 文件

查看 MD5哈希值

第二步:
把 内核 设备树 和 2个 md5 文件,一起发送到 Windows 的自定义目录里

第二步:打开 Windows 的 powershell :
进入 Windows 的自定义目录
D:
cd My_File\imx6ull_OTA
启动 HTTP 服务: python -m http.server 8080
开发板只能下载该目录及子目录下的文件。

第三步:开发板下载并验证
下载升级包

下载 md5 文件

在开发板 校验:

显示 ok , MD5 校验通过。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)