如何在c#中对MySQL使用openssl passwd -1

本文关键字:使用 openssl passwd MySQL 中对 | 更新日期: 2023-09-27 18:09:28

我正在为iRedMail服务器做一个扩展,我想使用c#代码添加新用户。IrerdMail持有MySQL数据库内的用户,用户的密码使用openssl (MD5)加密。当我查看iRedMail api用于创建用户时bash脚本中有一行代码:

openssl passwd -1 passwordToBeEncrpted

这个命令在终端返回我MD5字符串,如果我复制这个字符串到我的应用程序和执行插入命令MySQL表托管在邮件服务器创建的用户工作OK。从用户密码生成MD5的正确方法是什么,以便我可以将其插入MySQL数据库?
我的应用程序在iRedMAil以外的其他服务器上运行,是否必须在同一台机器上创建MD5 ?我正在考虑从c#代码调用SSH命令,是否有免费的。net库可以重用SSH输出字符串作为变量?
这可以在MSSQL服务器中使用UDF之类的东西来完成吗?我知道如何从MSSQL云调用命令应用程序做一些类似于MySQL - CentoOS组合存在的东西。

如何在c#中对MySQL使用openssl passwd -1

只是一个想法:与其尝试调用openssl(用户必须安装它,或者您必须在安装过程中包含它),还不如将crypt的原始C源代码移植过来。

这将花费你一些时间来正确,但在我看来,你的程序将更简单,更健壮,更紧凑的安装。

编辑:看看这个问题在这里SO:问题移植PHP crypt()函数到c# -他写的代码是为了与BSD crypt兼容,所以它可能只是你需要的。我刚刚在Visual Studio 2010中测试了它,并将其与Linux盒子上的openssl输出进行了比较,输出匹配。

我的开源库CryptSharp(自2.0起)支持MD5加密。语法为:

string cryptedPassword = Crypter.MD5.Crypt("password");

应该做你需要的。

詹姆斯