CHUAN2 DEV ENGINE
996 正版授权研发中心 · 360 授权合作教学中心 · 抖音传奇直播合作授权 · 快手推广运营商授权
OFFICIAL LICENSED ACADEMY 查验官方授权证书 →
// 威海旷世互娱教学基地 · 技术文章
入门夯实996引擎密码策略弱密码检测

【入门夯实】密码策略:弱密码的检测与拦截写法

2026-09-25 02:44 作者:996 技术组 996引擎Lua教程传奇脚本入门夯实996引擎Lua密码策略弱密码检测

学员常见误区

账号注册与改密接口只校验长度:玩家把密码设成 12345678(8 位纯数字),一次撞库即沦陷——装备被盗申诉里三成账号的密码都在常见弱密码表里。只查长度的策略拦不住顺序字符、重复字符与键盘走位这些一眼假的密码。更糟的是弱密码表存在脚本里却是空的,形同虚设。错误场景:

lua
local function checkPwdBad(pwd)
    return #pwd >= 8
end
checkPwdBad("12345678")

12345678 长度达标顺利通过,策略等于没设。

正确姿势

三道校验:长度下限、字符类别统计(必须同时含字母与数字)、常见弱密码表黑名单拦截。规范写法。示例代码如下:

lua
local WEAK = { ["12345678"] = true, ["password"] = true,
    ["qwer1234"] = true, ["11111111"] = true, ["88888888"] = true }
local function checkPwd(pwd)
    if #pwd < 8 then
        return false, "密码至少 8 位"
    end
    local hasLetter, hasDigit = false, false
    for i = 1, #pwd do
        local b = string.byte(pwd, i)
        if (b >= 65 and b <= 90) or (b >= 97 and b <= 122) then
            hasLetter = true
        end
        if b >= 48 and b <= 57 then
            hasDigit = true
        end
    end
    if not (hasLetter and hasDigit) then
        return false, "密码须同时包含字母与数字"
    end
    if WEAK[string.lower(pwd)] then
        return false, "密码过于常见,请更换"
    end
    return true
end

逐字节扫描统计字符类别,ASCII 区间判断字母与数字,弱密码表统一转小写比对防大小写绕过。示例代码如下:

lua
local ok, why = checkPwd("qwer1234")
if not ok then
    sendmsg(nil, 1, "设置失败:" .. why)
end

引擎验证

三步验证:12345678 被弱密码表拦截;abcdefgh 因纯字母被类别校验拦截;a8b8c8d8 三关全过返回 true——三类失败原因逐一对号。

举一反三

连续字符检测是进阶项:abc、987 这类顺序串单独扫描,字符码相邻差值恒为 1 或 -1 即判连续。示例代码如下:

lua
local function hasSequence(pwd)
    for i = 1, #pwd - 2 do
        local d1 = string.byte(pwd, i + 1) - string.byte(pwd, i)
        local d2 = string.byte(pwd, i + 2) - string.byte(pwd, i + 1)
        if d1 == d2 and math.abs(d1) == 1 then
            return true
        end
    end
    return false
end
作者履历与出处

本文由 996 技术组基于 996 引擎官方知识库与浮生梦老师课程体系整理。团队长期从事传奇类引擎 Lua 后端逻辑、客户端界面与商业版本交付,内容以官方知识库与真实项目为出处,按版本持续修订。

← 返回文章地图返回研学路径

幂尔框架 · 实战干货 · 接口调用

LATEST ARTICLES

全站技术干货持续更新:996 引擎 / Lua 实战帖,语法、参数与示例一篇讲透。进入文章地图 · 查看全部 →

进阶实战996引擎

【进阶实战】Lua笛卡尔积:祖玛教主挑战方案的组合枚举

一、线上事故:阵容 3 职业 × 4 时段 × 2 难度共 24 种挑战方案,手写循环嵌套漏了一层,只枚举出 12 种,一半…

2026-09-26 07:43 996 技术组
策划架构996引擎

【策划架构】Lua函数热替换:红名惩罚公式的在线切换

一、抛坑提问:红名惩罚公式要 A/B 两版对照跑,重启换版一次 5 分钟——把函数存进模块表字段,运行时改字段指向即完成切换…

2026-09-26 07:43 996 技术组
策划架构996引擎

【策划架构】Lua依赖注入:裁决之杖结算器的依赖外部传入

一、一行代码拆解:local svc = {pricing = p, ledger = l} —— 这一行把结算器要用的依赖…

2026-09-26 07:43 996 技术组
策划架构996引擎

【策划架构】Lua对象池:烈火剑法特效数据表的租借复用

一、一行代码拆解:local obj = table.remove(pool) or {} —— 这一行是对象池的取件口:池…

2026-09-26 07:43 996 技术组
入门夯实996引擎

【入门夯实】Lua集合交集:沙巴克双名单的重叠者识别

一、隐蔽陷阱:攻方名单与守方名单各 200 人,找两边都在的重叠者用双层循环逐对比,4 万次比较跑 0.4 秒;名单翻倍直接…

2026-09-26 07:43 996 技术组
进阶实战996引擎

【进阶实战】Lua贪心装包:裁决之杖战利品的容量优先取舍

一、线上事故:战利 30 件往剩余 8 格里塞,脚本按掉落顺序装满即停,价值 9000 的低阶货占格,价值 15000 的裁…

2026-09-26 07:43 996 技术组