正则表达式 – 创建密码验证功能Oracle 10g

前端之家收集整理的这篇文章主要介绍了正则表达式 – 创建密码验证功能Oracle 10g前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
如何在ORACLE中创建一个函数来检查密码?

密码应包含:

>至少1个大写字母
>至少1个小写字母
>至少1位数
>至少8个字符长
>不包含3个连续的用户名字母

到目前为止,我达到了以下目标:

CREATE OR REPLACE FUNCTION dd_pwd_fun(username varchar2,password varchar2)
RETURN BOOLEAN IS

PWD_STR VARCHAR2
USER_NAME

BEGIN

PWD_STR = password;
USER_NAME=username;

IF LENGTH(PWD_STR) < 8 THEN
RETURN FALSE;
END IF;

if regexp_like(:PWD_STR,'^.*[a-z].*$') -- this is for small letter from a -z
and regexp_like(:PWD_STR,'^.*[A-Z].*$') -- this is for capital letters
and regexp_like(:PWD_STR,'^.*[0-9].*$') -- this is for numbers

这是我第一次使用正则表达式,我需要一些帮助来找到最后一个要求的解决方案,而且我想知道我是否在正确的轨道上

Oracle提供了一个在SYS下编译的函数,用于密码验证,并且复杂.您将在$ORACLE_HOME / rdbms / admin / utlpwdmg.sql中找到它.

使用不同的版本,该功能已被修改,并添加了新功能.在10g中,复杂性检查非常简单.在12c之前,有两个函数verify_function(10g)和verify_function_11G(11g).使用12c,还有另外四个函数,ora12c_verify_function,ora12c_strong_verify_function和两个辅助函数complexity_check和string_distance.

由于您使用的是10g,因此您可以编写UDF以强制执行更复杂的密码验证检查.在较新版本中搜索函数及其内容,并在UDF中应用类似的逻辑.看看http://www.oradba.ch/2013/07/oracle-12c-new-password-verify-function/

原文链接:/regex/451908.html

猜你在找的正则表达式相关文章