介绍本 micropython 教程的目的是解释如何在esp32上使用 SHA-256 算法与 micropython 一起使用该模块。
我们将使用一个来自 hashlib的模块, 该模块实现了 SHA-256 hash算法。你可以在这里(https://www.vocal.com/cryptography/sha-algorithm/)阅读更多关于 SHA 的信息。
安装库
本文撰写之际,MicroPython二进制版本的默认配置并不包括此库。因此,我们需要进行手动安装。但请注意,此处使用的安装方式是将模块复制到我们的文件系统再从系统导入该模块以启用命令行环境中的函数。
因此,我们首先要将模块复制到MicroPython文件系统上。你可以在此处获取SHA-256库的源代码。最简单的方法是转到GitHub的原始视图,复制整个代码,再将其保存到计算机里的sha256.py文件中。
为确认不存在其他模块依赖关系,你可以在文件里按快捷键“Ctrl + F”来搜索关键字“import”。应查找不到任何结果。
现在,我们要将文件上传到文件系统。为此,我们需要用到一个名为ampy的Python工具。你可以参阅这篇之前的教程,其详细说明了如何安装ampy以及如何通过该软件将文件上传至MicroPython的文件系统。
接下来,将ESP32开发板连接到计算机,打开命令行并导航到之前保存sha256.py文件的目录。在该目录下,只需将COM5更改为开发板连接串口并点击以下命令即可:
[mw_shl_code=applescript,true]1 ampy --port COM5 put sha256.py[/mw_shl_code]
该文件现在应该已经上传到你的开发板文件系统了。由于文件较大,上传可能需要一段时间。
测试库
要测试此库,只需借助Putty之类的程序连接到Python提示符。建立连接后,我们将通过发送以下命令确认我们的文件系统里存有该文件:
[mw_shl_code=applescript,true]1 import os
2 os.listdir()[/mw_shl_code]
如图1所示,该库已存入文件系统。就我而言,我还有其他项目的文件。
图1 – MicroPython文件系统中的Sha256.py模块。
现在,我们将测试该模块的功能性。首先,使用如下所示的命令导入该模块。
[mw_shl_code=applescript,true]1 import sha256[/mw_shl_code]
然后,创建sha256类的对象,将包含我们想要散列的内容的字符串作为输入值传递。此处将用到一个简单的测试字符串,如以下代码所示。