Heim > php教程 > php手册 > 分享生成纯数字的随机密码函数(附代码)

分享生成纯数字的随机密码函数(附代码)

PHPz
Freigeben: 2018-10-24 14:14:43
nach vorne
2204 Leute haben es durchsucht

做一些小系统,经常要初始化用户密码,密码要随机,但又不能太复杂。特别像一些不重要的系统,比如,投票网站等等。

下面就是我写的纯数字随机密码生成函数:

CREATE OR REPLACE FUNCTION public.isnumeric(text)
 RETURNS boolean
 LANGUAGE sql
AS $function$
SELECT $1 ~ '^[0-9]+$'
$function$
;
Nach dem Login kopieren
CREATE OR REPLACE FUNCTION public.rnd_pwd(str varchar,len integer)
 RETURNS varchar
 LANGUAGE plpgsql
AS $function$
DECLARE
str1   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$
;
Nach dem Login kopieren

比如,我们可以这样用:

select rnd_pwd('fdsfss',6);
 rnd_pwd
---------
 751533
Nach dem Login kopieren

或者批量生成随机代码,每个用户不同,但是都是4位数字:

update t_user set pwd=rnd_pwd(logname,4);
Nach dem Login kopieren

【相关教程推荐】

1. php编程从入门到精通全套视频教程 

2. php从入门到精通  

3. bootstrap教程 

Verwandte Etiketten:
Quelle:csdn.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage