Boa noite. Caros, Gostaria de saber se alguém já fez algum sistema de login com criptográfia ? ou ate mesmo um sistema que gera senhas randomicamente que verifique se a senha é forte ou media ou fraca, e que faça a criptográfia da mesma. Obrigado.
Aqui um exemplo bem simples, usando MD5 (precisa de Progress 10 em diante). PHP: DEFINE VARIABLE senhaCHAR AS CHARACTER.DEFINE VARIABLE senhaRAW AS RAW.DEFINE VARIABLE senhaMD5 AS CHARACTER.DEFINE VARIABLE conta AS INTEGER.DEFINE VARIABLE auxiliar AS CHARACTER.FUNCTION ConverteInteiroParaHexadecimal RETURNS CHARACTER (INPUT n AS INTEGER). DEFINE VARIABLE caracteresHexadecimal AS CHARACTER INIT "0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f" NO-UNDO. RETURN (IF n > 15 THEN ConverteInteiroParaHexadecimal( INTEGER(TRUNCATE(n / 16, 0))) ELSE "") + ENTRY(n MOD 16 + 1, caracteresHexadecimal).END FUNCTION. /* FUNCTION ConverteInteiroParaHexadecimal RETURNS CHARACTER (INPUT n AS INTEGER) */senhaCHAR = "minha senha".senhaRAW = MD5-DIGEST(senhaCHAR).senhaMD5 = "".DO conta = 1 TO LENGTH(senhaRAW): auxiliar = ConverteInteiroParaHexadecimal(GET-BYTE(senhaRAW,conta)). IF LENGTH(auxiliar) = 1 THEN auxiliar = "0" + auxiliar. senhaMD5 = senhaMD5 + auxiliar.END.senhaMD5 = CAPS(senhaMD5).DISPLAY senhaMD5 FORMAT "X(50)".
Bom dia @lwazevedo tudo bom? Sou palestrante de criptografia pela UDESC, UNIVILLE e UFOP, além de ter desenvolvido o Neo Step WarFile e Neo Step Cosmos (veja em neostep.com.br). Falando tecnicamente, você precisa calcular com MD5 ou SHA (Secure Hash Algortihm - Minha preferência) a senha e armazenar no banco, depois calcular o que foi digitado e simplesmente comparar ambas. Como funções HASH são unidirecionais, não deve haver meio de retornar o que foi calculado, por isso você deve comparar a senha do banco com o que foi digitado e calculado. Além de poderem calcular um texto de entrada de qualquer tamanho, retornar sempre um tamanho fixo e parecer aleatório. Já implementei sistema de cálculo para senha, há alguns métodos para fazer isso, mas não tenho certeza se há algum método RFC para tanto. Vale lembrar que o SHA do Progress ABL é antigo, então sugiro usar outras linguagens mais atualizadas para calcular um SHA mais seguro. Fiz este exemplo http://4each.com.br/resources/calcular-sha1.58/ para você brincar Forte abraço.
Obrigado @Agnaldo pela dica. Tudo certo @jaisonantoniazzi e com você ? Obrigado pelas dicas, vou dar uma olhada nisso. Na realidade o que estou fazendo é um projetinho para a cadeira de segurança na faculdade, como conheço mais progress do que outras linguagens decidi fazer com o mesmo. Eu preciso fazer um programa que eu coloque um senha e identifica se a mesma é fraca, media ou forte, vou precisar criptografar a mesma no braço e depois usar o md5 também, além de ter que fazer uma funcionalidade que gere senhas randomicamente e que sejam verificadas pela primeira função que fiz. Se tu tiver algum material sobre o assunto e poder me conseguir agradeceria. meu e-mail é lwazevedo@live.com. Obrigado @jaisonantoniazzi . Abraço.