![e1782af151062a084a9eee22ac256e2a.png](https://i-blog.csdnimg.cn/blog_migrate/f7c973fb7af6c9a22d90fdaef9dda86e.jpeg)
最近需要使用SM4分组密码算法,而且是在资源受限制的环境,后面可能还会在STM32中使用。一开始发现这个算法好像比较少使用,没有合适的实现可以直接拿来用。后来发现openssl里面已经实现了,但是我总不能把openssl移植到STM32上吧?而且一看就太大了,我所需要的就只是一个encrypt和一个decrypt而已。于是就开始自己写了。主要参考的是官方发布的pdf。
写完了sm4.h和sm4.c之后,因为都是分组密码,结构很类似,所以顺便把aes也实现了一遍。再就是也可能会使用到SM3密码杂凑算法,就把sm3也实现了。然后就是把同为hash算法的md5,sha1,sha256也实现了,最后把这个东西做成了一个库。至于非对称加密算法,目前还不打算考虑。
目前这个库用还是可以用,但是在性能与安全性上没有考虑太多。在使用密码学相关的东西时,还是优先考虑比较成熟的广泛使用的库,不要自己写。不过如果是在我这样用不上这些成熟的东西的情况下,可以拿这个库参考一下。
exiledkingcc/zcryptogithub.com![b580c0c8e7eb138b4e53e1bbeb01b255.png](https://i-blog.csdnimg.cn/blog_migrate/1a5039a3e8ef371a5ab3457be5ad2eec.jpeg)