Caractere especial em senha gerada automaticamente
Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.
Usuário Samuel:
Avelino,
há alguns dias que graças a sua ajuda, foi possível criar um código onde é gerado uma senha, automaticamente, na soma dos caracteres do CPF do usuário. Agora senti a necessidade de adicionar também um caractere especial tipo: #,$,*,&. Criei uma tabela onde, pela lógica usada na geração de senha pelo número de CPF do usuário, o código possa buscar este caractere especial.
Ex: no CPF de número 123.456.789-98 temos as seguintes somas:
1 + 2 + 3 = 6
4 + 5 + 6 = 15
7 + 8 + 9 = 24
9 + 8 = 17
Então, obtemos como resultado a seqüência 6152417 .
Baseado na coluna hexadecimal da tabela ASCII, a senha é 060F1811
Sabendo que o valor destes grupos de três dígitos pode chegar ao máximo de 27. Então, criei a tabela com 27 caracteres especiais. Quero que no código abaixo, nas soma dos dígitos, conforme explicado acima, ele inclua um caractere especial de acordo com a tabela que criei.
Public Function fncGerarSenha(CPF$)
Dim j%, p(4) As Variant
CPF = Replace(Replace(CPF, ".", ""), "-", "")
For j = 1 To 11
Select Case j
Case 1 To 3: p(0) = p(0) + Val(Mid(CPF, j, 1))
Case 4 To 6: p(1) = p(1) + Val(Mid(CPF, j, 1))
Case 7 To 9: p(2) = p(2) + Val(Mid(CPF, j, 1))
Case 10 To 11: p(3) = p(3) + Val(Mid(CPF, j, 1))
End Select
Next
p(0) = Hex(p(0)): p(1) = Hex(p(1))
p(2) = Hex(p(2)): p(3) = Hex(p(3))
fncGerarSenha = IIf(Len(p(0)) = 1, "0" & p(0), p(0)) & IIf(Len(p(1)) = 1, _
"0" & p(1), p(1)) & IIf(Len(p(2)) = 1, "0" & p(2), _
p(2)) & IIf(Len(p(3)) = 1, "0" & p(3), p(3))
End Function
Desde já, agradeço.
Suporte:
Samuel, em que posição você vai querer o caractere especial? No final do código? Exemplo:
para o CPF 123.456.789-98 ::::> 060F1811x
Aonde x seria o resultado da soma dos três primeiros dígitos?
Exemplo do código, sem a necessidade da tabela:
Faça o login aqui para ter acesso ao código.
Usuário Samuel:
Avelino, no meio seria mais interessante.
Suporte:
Samuel, é só deslocar o p(4). Altere, conforme esta parte:
...
fncGerarSenha = IIf(Len(p(0)) = 1, "0" & p(0), p(0)) & IIf(Len(p(1)) = 1, _
"0" & p(1), p(1)) & p(4) & IIf(Len(p(2)) = 1, _
"0" & p(2), p(2)) & IIf(Len(p(3)) = 1, "0" & p(3), p(3))
...
Usuário Samuel:
Muito Obrigado novamente pela ajuda, funcionou corretamente.
Não há comentário |