为skynet的crypt库扩展一些加密(摘要)算法支持

本文讲述了为Skynet的crypt库增加SHA2、HMAC、MD5等加密算法支持的原因和过程,包括去除不易阅读的宏定义,转换为标准Lua模型,以及从其他开源库获取源码进行改造。改造后的库性能良好,已开源并提供了安装和替换说明。
摘要由CSDN通过智能技术生成

改造起因

上篇文章, 我描述了为skynet添加稳定的websocket支持的起始并阐述了这么做的原因.

这几天在测试的时候发现, 当使用skynet内置的httpc库的时候会遇见crypt缺少一些我需要用到的算法(例如: crcsha256hmac_sha256等等).

这里完全可以假设开发者在框架选型的时候没发现这个问题, 那可能会到开发中期需要第三方平台接入或扩展不同架构的时候才可能会发现了.

显然这将会在无形之中就会给一个项目引入不可预料的稳定性因素. 为了尽可能的避免这个因素, 扩展一些常见的加密(摘要)算法支持是必不可少的.

首选方案肯定使用已经成熟的库. 但是很可惜, lua5.3没有较为可靠并且现成的实现库可以fork后直接使用.

而且可以用来参考的库仅有: luajit利用ffi实现的库、OpenSSL的实现. 然而这些无法直接或间接移植到lua 5.3.

这是目前遇到的最坏的情况! 最终, 我们只能用Lua的C API来粘合C语言的Crypt实现来完成Lua版本的Crypt扩展库改造工作.

改造开始

我在网上寻找一段时间后发现一个比较不错的Lua sha实现.

这份代码包含md5sha128sha384sha512的C实现, 其用大量的宏来完

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值