做一些小系统,经常要初始化用户密码,密码要随机,但又不能太复杂。特别像一些不重要的系统,比如,投票网站等等。
下面就是我写的纯数字随机密码生成函数:
create or replace function public.isnumeric(text) returns boolean language sqlas $function$select $1 ~ '^[0-9]+$'$function$;
create or replace function public.rnd_pwd(str varchar,len integer) returns varchar language plpgsqlas $function$declarestr1 varchar;v_sum varchar;v_s varchar;v_i integer;begin str1=str|| cast(now() as varchar); str1=substr(md5(str1),1,len); v_i:=1; v_sum:=''; loop v_s:=substr(str1,v_i,1); if isnumeric(v_s) then v_sum:=v_sum ||v_s; else v_sum:=v_sum || cast((ascii(v_s) -ascii('a')) as varchar) ; end if; v_i=v_i+1; if v_i>length(str1) then exit; end if; end loop; return v_sum;end;$function$;
比如,我们可以这样用:
select rnd_pwd('fdsfss',6); rnd_pwd--------- 751533
或者批量生成随机代码,每个用户不同,但是都是4位数字:
update t_user set pwd=rnd_pwd(logname,4);
【相关教程推荐】
1. php编程从入门到精通全套视频教程
2. php从入门到精通
3. bootstrap教程