C# 等同于System.Web.Helpers.Crypto.VerifyHashedPassword的Lua或C
我正在寻找与.NET方法System.Web.Helpers.Crypto.VerifyHashedPassword等效的Lua或C。我要解决的问题是.NET应用程序正在创建密码哈希,但需要一个Lua应用程序来处理身份验证 NET类的源代码是可用的,但它似乎会变得相当深入,并且很难在Lua或C中快速重建 Lua中现有的加密库似乎无法解决这个问题C# 等同于System.Web.Helpers.Crypto.VerifyHashedPassword的Lua或C,c#,.net,c,lua,cryptography,C#,.net,C,Lua,Cryptography,我正在寻找与.NET方法System.Web.Helpers.Crypto.VerifyHashedPassword等效的Lua或C。我要解决的问题是.NET应用程序正在创建密码哈希,但需要一个Lua应用程序来处理身份验证 NET类的源代码是可用的,但它似乎会变得相当深入,并且很难在Lua或C中快速重建 Lua中现有的加密库似乎无法解决这个问题 感谢您的帮助 取任何库/代码/任何东西,比方说,(谷歌上的第一个“c md5库”结果),然后简单地对输入密码进行散列(重要提示:与密码加密时使用的散列a
感谢您的帮助 取任何库/代码/任何东西,比方说,(谷歌上的第一个“c md5库”结果),然后简单地对输入密码进行散列(重要提示:与密码加密时使用的散列alg相同。可能是md5,正如我上面猜测的-如果不是md5-那么,你有它的源代码,弄清楚它是什么alg)比较字节数组-如果它们完全匹配,那么密码要么正确,要么至少是冲突-如果它们不完全匹配,那么密码是错误的。我认为没有一个完全等效的Lua实现。从C#实现来看,它有很好的文档记录,因此将实现移植到Lua或C应该不会太难 好消息是.NET实现中使用的加密原语是可用的,因此您不需要重写这些部分。特别是,您需要:
- 来自rfc2898的PBKDF2密钥派生函数
- PBKDF2使用SHA1作为基础哈希函数。根据您的需求,您可能也需要SHA256,但PBKDF2本身被设计为与哈希函数无关。如果使用rfc2898规范,则默认使用SHA1
- Base32/64编码解码功能。从源代码看,
应该在base64中hashedPassword
/* =======================
* HASHED PASSWORD FORMATS
* =======================
*
* Version 0:
* PBKDF2 with HMAC-SHA1, 128-bit salt, 256-bit subkey, 1000 iterations.
* (See also: SDL crypto guidelines v5.1, Part III)
* Format: { 0x00, salt, subkey }
*/
现在有几个PBKDF2 lua实现:
我确实用纯lua编写了自己的PBKDF2实现,作为wifi WPA破解的练习。如果您对它感兴趣,我可以与您分享。它是PBKDF2-HMAC-SHA-1,而不是MD5。这是一个很大的帮助。当我在深夜看到这样做时,并不清楚需要做什么,但走开,阅读你的评论有助于我理清思路。我在路上,将分享结果。如果您想共享您的PBKDF2实现,那么最好看到另一个选项。