Como Validar Senha Regexp_Like?
Enviado: Dom, 20 Mar 2011 10:54 am
Bom dia pessoal,
Estou tentando fazer uma validação de restrição de caracteres na senha, ou seja, quero criar uma função que valide se a senha possua letras minusculas, maiusculas, números e caracteres especiais, porém gostaria que independente da ordem o regexp_like validasse.
O máximo que consegui fazer foi uma regra assim:
SELECT *
FROM DUAL
WHERE REGEXP_LIKE('*1aA',
'([a-z][A-Z][0-9][*@#$%]|[A-Z][a-z][0-9][*@#$%]|[0-9][A-Z][a-z][*@#$%]|[0-9][a-z][A-Z][*@#$%]|'||
'[*@#$%][a-z][A-Z][0-9]|[*@#$%][A-Z][a-z][0-9]|[*@#$%][0-9][A-Z][a-z]|[*@#$%][0-9][a-z][A-Z]|'||
'[a-z][*@#$%][A-Z][0-9]|[A-Z][*@#$%][a-z][0-9]|[0-9][*@#$%][A-Z][a-z]|[0-9][*@#$%][a-z][A-Z]|'||
'[a-z][A-Z][*@#$%][0-9]|[A-Z][a-z][*@#$%][0-9]|[0-9][A-Z][*@#$%][a-z]|[0-9][a-z][*@#$%][A-Z])')
Que faz o que eu quero mas achei muito complexa, teria uma forma mais fácil de eu validar a senha assim:
Senha: 'a1A%' - Senha correta.
Senha: 'A1a%' - Senha correta.
Senha: '%Aa1' - Senha correta.
Senha: 'A%1a' - Senha correta.
Senha: 'A1a' - Senha incorreta pois não tem caracter especial.
E assim por diante, então a idéia é que possua ao menos uma ocorrencia de cada validação.
Estou tentando fazer uma validação de restrição de caracteres na senha, ou seja, quero criar uma função que valide se a senha possua letras minusculas, maiusculas, números e caracteres especiais, porém gostaria que independente da ordem o regexp_like validasse.
O máximo que consegui fazer foi uma regra assim:
SELECT *
FROM DUAL
WHERE REGEXP_LIKE('*1aA',
'([a-z][A-Z][0-9][*@#$%]|[A-Z][a-z][0-9][*@#$%]|[0-9][A-Z][a-z][*@#$%]|[0-9][a-z][A-Z][*@#$%]|'||
'[*@#$%][a-z][A-Z][0-9]|[*@#$%][A-Z][a-z][0-9]|[*@#$%][0-9][A-Z][a-z]|[*@#$%][0-9][a-z][A-Z]|'||
'[a-z][*@#$%][A-Z][0-9]|[A-Z][*@#$%][a-z][0-9]|[0-9][*@#$%][A-Z][a-z]|[0-9][*@#$%][a-z][A-Z]|'||
'[a-z][A-Z][*@#$%][0-9]|[A-Z][a-z][*@#$%][0-9]|[0-9][A-Z][*@#$%][a-z]|[0-9][a-z][*@#$%][A-Z])')
Que faz o que eu quero mas achei muito complexa, teria uma forma mais fácil de eu validar a senha assim:
Senha: 'a1A%' - Senha correta.
Senha: 'A1a%' - Senha correta.
Senha: '%Aa1' - Senha correta.
Senha: 'A%1a' - Senha correta.
Senha: 'A1a' - Senha incorreta pois não tem caracter especial.
E assim por diante, então a idéia é que possua ao menos uma ocorrencia de cada validação.