You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VB.NET中实现与PHP一致的密码加密?

VB.NET 实现与 PHP crypt() 一致的密码加密

核心说明

你的PHP代码采用的是Blowfish算法的crypt加密,格式为$2a$[成本因子]$[盐]$,其中:

  • $2a$ 是Blowfish算法的标识
  • 07 代表成本因子,对应计算迭代次数为2^7=128次
  • asxx54ahjppf45sd87a5a4dDDGsystemdev 是自定义盐(长度符合Blowfish算法的要求)

VB.NET 实现步骤

  1. 安装依赖库
    在NuGet包管理器中搜索并安装BCrypt.NET-Next,这个库原生支持与PHP crypt()兼容的Blowfish加密逻辑。

  2. 编写加密代码
    直接调用库的HashPassword方法,传入密码和完整格式的盐字符串即可:

    Imports BCrypt.Net
    
    ' 对应PHP代码中的盐字符串
    Dim salt As String = "$2a$07$asxx54ahjppf45sd87a5a4dDDGsystemdev$"
    Dim inputPassword As String = "用户输入的密码" ' 对应PHP的$_POST["Password"]
    Dim encryptedResult As String = BCrypt.HashPassword(inputPassword, salt)
    
    ' 输出结果与PHP crypt()的返回值完全一致
    Console.WriteLine(encryptedResult)
    
  3. 验证加密一致性
    如果需要验证VB.NET加密结果与PHP生成的加密串是否匹配,可使用Verify方法:

    Dim phpEncryptedStr As String = "PHP端生成的加密密码"
    Dim isMatch As Boolean = BCrypt.Verify(inputPassword, phpEncryptedStr)
    

注意事项

  • 盐的格式必须严格遵循$2a$xx$[22位有效字符]$的规则,PHP的crypt()会自动截取前22位作为有效盐(你的示例盐长度满足要求)
  • 成本因子已包含在盐字符串中,无需在VB.NET代码中单独设置迭代次数

内容的提问来源于stack exchange,提问作者GeraldoMung

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 07:34:57