LUACN论坛

 找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
热搜: YJWOW MagicStone BoL
查看: 1772|回复: 2

[其他] lua 实现屏蔽密码信息

[复制链接]
发表于 2017-7-4 18:13:19 | 显示全部楼层 |阅读模式
本帖最后由 dengxintao_520 于 2017-7-5 11:07 编辑

我需要实现一个屏蔽密码功能
text = "{\"pwd\":\"12333123ad\"}\"pwd\":\"1233sd3123\"pwd:123321,ad"
wordLib = {"PWD", "USER_PWD", "pwd", "AUTH_INFO", "REQ_AUTH_INFO",
"REQ_EXT_ACC_PWD", "EXT_ACC_PWD"}
text是给定的字符串,wordLib 是一个table,如果在给定的字符串里面有table的关键字,比如pwd的时候,就屏蔽掉pwd:后面的密码信息(****)。pwd后面有可能是=号,也有可能是冒号,屏蔽后得到的字符串保持json格式
如何做,对lua不熟,求助,谢谢?
回复

使用道具 举报

 楼主| 发表于 2017-7-5 08:52:53 | 显示全部楼层
没有人知道麽?求解答啊~~!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-7-5 15:18:13 | 显示全部楼层
哎自己搞吧。
local source = "pwd\":\"12333123ad\"}\"apwd\":\"1233sd3123\"pwd:123321,adpwd1233fgfsdgs"
local desensitizeKeyArray = { "PWD", "USER_PWD", "pwd", "AUTH_INFO", "REQ_AUTH_INFO",
                        "REQ_EXT_ACC_PWD", "EXT_ACC_PWD" };

function desensitizeStr(source,desensitizeKeyArray)
        for i=1,#desensitizeKeyArray do

                local regex = "(%A*)"..desensitizeKeyArray[i].."(%D*)".."(%d+)"

                local m = string.match(source, regex)
                if m then
                        --source = string.gsub(source,regex,replaceStr(%5))
                        source = string.gsub(source,regex,"%1"..desensitizeKeyArray[i].."%2".."***")
                        --print("source:"..source)
                        return source
                        --break
                end
        end
end
local res = desensitizeStr(source,desensitizeKeyArray)
print("res:"..res)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

小黑屋|手机版|Archiver|LUACN论坛

GMT+8, 2024-5-18 11:37 AM , Processed in 0.043469 second(s), 17 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表