dengxintao_520 发表于 2017-7-4 18:13:19

lua 实现屏蔽密码信息

本帖最后由 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不熟,求助,谢谢?

dengxintao_520 发表于 2017-7-5 08:52:53

没有人知道麽?求解答啊~~!{:5_237:}

dengxintao_520 发表于 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.."(%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.."%2".."***")
                        --print("source:"..source)
                        return source
                        --break
                end
        end
end
local res = desensitizeStr(source,desensitizeKeyArray)
print("res:"..res)
页: [1]
查看完整版本: lua 实现屏蔽密码信息