纯Lua哈希方法
2013-11-14 22:13:57
收藏:0
阅读:126
评论:1
这已经困扰我一段时间了,我似乎找不到一个纯 Lua 实现的流行哈希方法,比如 SHA256、SHA512 或 Whirlpool。我需要它,因为我将在客户端哈希密码,然后将其发送到服务器。速度不是问题,我不在乎哈希 10,000 次需要 10 秒左右,我将在一个线程上运行它。
我以前试过一些,一开始看起来完美无缺,但当我尝试不同的输入字符串(通常是更长的字符串)时,哈希值变成了完全不正确的哈希输出。
我正在使用 Love2D 的 LuaJIT 版本,所以它已经实现了 BitOp 库。如果你们中有人知道这些哈希方法或任何类似的安全方法的好实现,请告诉我!
谢谢!
更新:下面是一些结果!
首先这是我正在使用的测试代码。
https://github.com/JustAPerson/LuaCrypt
输入:测试字符串
输出:a3e49d843df13c2e2a7786f6ecd7e0d184f45d718d1ac1a8a63e570466e489dd
期望的:a3e49d843df13c2e2a7786f6ecd7e0d184f45d718d1ac1a8a63e570466e489dd
输入:这是一个要哈希的测试字符串
输出:05b4ac920d4130cb9d9bb046cac7476f35d7404cf116dc8d6d4a113c3c79d904
期望的:f70b476ff948472f8e4e52793a5a2779e636c20dd5336d3a8a4455374318db35
https://bitbucket.org/Boolsheet/sil/raw/tip/hash.lua
输入:测试字符串
输出:8f1a5b37fbe986953c343d5b839b14843c6c29d47a6a7e52f263cd82ad6141a3
期望的:a3e49d843df13c2e2a7786f6ecd7e0d184f45d718d1ac1a8a63e570466e489dd
输入:这是一个要哈希的测试字符串
输出:167bf7b9000442419b3016a6e1edfcc7c8d40b5f0b80518a31ddb0bbd388e87ac
期望的:f70b476ff948472f8e4e52793a5a2779e636c20dd5336d3a8a4455374318db35
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
在Lua用户维基上有SHA256的实现。该页面指出它是Lua 5.2版本。我想,在LuaJIT中将其运作起来不会太困难。
请注意围绕密码和身份验证的更大安全问题。通常的建议是使用现有的经过测试和支持的实现,而不是自己编写安全性。这不是轻描淡写地做的事情。
由于您正在使用LuaJIT,您应该能够利用其非常强大的FFI功能来使用本地平台提供的加密。这可能需要编写一些面向平台的FFI风格的Lua代码,以适用于您的客户端预计运行的每个平台。但从我在LuaJIT邮件列表中的观察来看,这不应该太痛苦了。