如何在 vba 中使用 Bcrypt.Net 对 PHP 中 crypt 函数存储的密码进行身份验证
Posted
技术标签:
【中文标题】如何在 vba 中使用 Bcrypt.Net 对 PHP 中 crypt 函数存储的密码进行身份验证【英文标题】:How to use Bcrypt.Net inside vba to authenticate against password stored by crypt function in PHP 【发布时间】:2013-10-24 13:48:10 【问题描述】:我有一个数据库,其中存储了使用 php 的 crypt 函数加密的密码。我发现 crypt 函数实际上使用 bcrypt 并且我发现 http://bcrypt.codeplex.com/ bcrypt 是用 BSD Base64 Alphabet 而不是常规 Base64 Alphabet 以非常具体的方式编写的。
我希望 Bcrypt.Net 项目模拟 PHP 版本。但我对在 VBA 中使用 DLL 并能够访问它们的功能一无所知。而且我不知道如何在 Dll 中找到模拟 Bcrypt 的函数。
我在 Access 2010 中使用 VBA。任何人都可以帮忙!
【问题讨论】:
这个怎么样? di-mgt.com.au/cryptoBlowfishVer6.html 我认为您不能在 Access 中使用 BCrypt,除非该 .DLL 是专门为 COM 消费者编写的。大多数 .NET 项目/DLL 没有被编写为 COM Callable,除非这是构建 .DLL 时的特定要求。这是因为在 .NET 中制作 DLL 以便它们是 COM 可调用的并非易事。 【参考方案1】:我从这里Bcrypt.Net 下载了 bcrypt.net。 要添加 dll 文件,右键单击项目名称,然后选择“References...”。 将打开一个窗口,然后浏览您要插入的 dll 文件。然后根据需要在 C# 页面中添加代码。
using BCrypt;
public partial class your_class_name : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
string salt = BCrypt.Net.BCrypt.GenerateSalt(); //Generate Salt
string hash = BCrypt.Net.BCrypt.HashPassword("subinoy", salt); //Using salt to generate password
if(BCrypt.Net.BCrypt.Verify("username","$2a$10$ljfI1o3m3gI.rXDpDkGc/ebUNqHKJ22EhJrQJnuoe3yAf58QoZW6i")) //this hash inside the if() will be taken from the database when the user registered
bcrypttext.Text = "equals";
else
bcrypttext.Text = "Not equal" + hash;
对于php bcrypt,请观看此链接
【讨论】:
以上是关于如何在 vba 中使用 Bcrypt.Net 对 PHP 中 crypt 函数存储的密码进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章