在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
最近工作中遇到需要使用LUA脚本进行字符串的密码校验,利用业余时间进行下总结: 1、Ubuntu下安装LUA,只需要一个执行udo apt-get install lua5.2即可,本来想安装5.3,但是失败了,所以只安装了5.2:
2、先简单写个LUA脚本,实验下是否好用:
3、然后执行lua ./checkpass.lua查看结果:
4、接下来补充完整的校验密码函数(格式要求是只能输入8为16进制密码)
5、进行简单的密码验证:
6、下面对代码中使用的LUA进行简单的介绍 6.1 数字型for(numeric for) for var=exp1,exp2,exp3 do <执行体> end var 从exp1变化到exp2,每次变化都以exp3作为步长(step)递增var,执行一次执行体。 第三个表达式exp3可选,若不指定的话,Lua会将步长默认为1 例如:for i=1,f(x) do print(i) end for i=10,1,-1 do print(i) end 注意:for循环的3个表达式是在循环开始前一次性求值的。 6.2 泛型for(generic for) 泛型for循环通过一个迭代器(iterator)函数来遍历所有值: 例如1:打印数组a的所有值 for i,v in ipairs(a) do print(v) end Lua基础库提供了ipairs,这是一个用于遍历数组的迭代器。在每次for循环中,i会被赋予一个索引值,同时v被赋予一个对应于该索引的数组元素值。 例如2:打印table t中所有的key for k in pairs(t) do print(k) end 从外观看泛型for比较简单,但其实它是非常强大的。通过不同的迭代器,几乎可以便利所有的东西。 标准库提供了几种迭代器,包括用于迭代文件中每行的(io.liens)、迭代table元素的(pairs)、迭代数组的(ipairs)、迭代字符串中单词的(string.match)等 7、LUA中的字符串 字符串长度:string.len(s) 将一个字符重复N遍:string.rep(s,n) 或 s:rep(n) 将字符串转换成大写:string.upper(s) 将字符串转换成小写:string.lower(s) 从字符串s中提取第i个到第j个字符:string.sub(s,i,j) string.char接受零个或多个整数,并将每个整数转换成对应的字符,然后返回一个由这些字符连接而成的字符串。 string.char(97,98,99) = abc string.byte(s,i)返回字符串s中第i个字符的内部数值表示,第二个参数是可选的,调用string.byte(s)可返回字符串s中第一个字符的内部数值表示。 string.byte("abc",2) = 98 string.byte("abc") = 97 string.byte("abc",-1) = 99 |
请发表评论