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

本文介绍了如何创建一个PL/pgSQL函数,用于生成用于不重要系统的简单随机数字密码。该函数结合当前时间戳和输入字符串,通过MD5哈希确保唯一性,并过滤出纯数字进行组合,可用于快速初始化用户密码或生成简单的投票网站密码。
摘要由CSDN通过智能技术生成

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

下面就是我写的纯数字随机密码生成函数:CREATE OR REPLACE FUNCTION public.isnumeric(text)

RETURNS boolean

LANGUAGE sql

AS $function$

SELECT $1 ~ '^[0-9]+$'

$function$

;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$

;

比如,我们可以这样用:select rnd_pwd('fdsfss',6);

rnd_pwd

---------

751533

或者批量生成随机代码,每个用户不同,但是都是4位数字:update t_user set pwd=rnd_pwd(logname,4);

【相关教程推荐】

本文转载于:CSDN博客,如有侵犯,请联系a@php.cn删除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值