Senha em Progress

Discussão em 'Progress 4GL' iniciado por antenor, Dezembro 13, 2011.

  1. antenor

    antenor Membro Participativo

    boa tarde

    Estou usando um código para gerar senhas em progress, mas eu gostaria de incluir nele letras intercaladas com os números. Alguém por gentileza sabe uma maneira simples de fazer isto.

    Obrigado
  2. antenor

    antenor Membro Participativo

    Perdão esqueci de enviar o código:

    def var cod as char.
    ASSIGN cod = STRING((RANDOM(1,5555555))).
    DISP cod.
  3. rhemati

    rhemati Membro Participativo

    antenor, boa tarde.

    Veja este modelo: junção do seu código com um meu.

    Veja se te agrade e/ou é o que você está querendo.

    Código:
    /* def var cod as char.                      */
    /* ASSIGN cod = STRING((RANDOM(1,5555555))). */
    /* DISP cod.                                 */
    
    DEF VAR senha_cri AS RAW.
    DEF VAR senha_des AS CHAR.
    DEF VAR senha AS CHAR.
    def var cod as char.
    
    def var c-chave as char.
    
    assign c-chave = string( today ).
    
    /* UPDATE senha FORMAT "X(15)". */
    
    ASSIGN cod = STRING((RANDOM(1,5555555))).
    
    ASSIGN senha_cri = ENCRYPT( cod ,GENERATE-PBE-KEY( c-chave )).
    
    MESSAGE senha SKIP
            cod skip
            string(senha_cri ) SKIP
            senha_des SKIP
        VIEW-AS ALERT-BOX.
    
    
    ASSIGN senha_des = STRING(DECRYPT(senha_cri,GENERATE-PBE-KEY( c-chave ))).
    
    MESSAGE senha SKIP
            string(senha_cri ) SKIP
            senha_des SKIP
        VIEW-AS ALERT-BOX.
    
    
    Abs.,
  4. antenor

    antenor Membro Participativo

    Obrigado, estou verifcando o código, eu vi que vc gerou várias letras e caaracteres. Eu gostaria de garar apenas dez letras e números misturados. Onde eu posso alterar o código?
    Obrigado
  5. LeandroSantos

    LeandroSantos Membro Participativo

    É possivel fazer isso de varias maneiras uma delas:
    Código:
    &Scoped-Define lista "01234567890ABCDEFGHIJKLMNOPQRSTUVXYWZ"
    
    def var codigo as char.
    
    function codigo return char:
       codigo = "".
       do while length(codigo) < 10:
          assign codigo = codigo + substring({&lista},random(1,length({&lista})),1).
       end.
       return codigo.
    end.
    
    message
       codigo() skip
       codigo() skip
       codigo() skip
       view-as alert-box.
    
  6. rhemati

    rhemati Membro Participativo

    antenor, vê se fica legal desta forma:

    Código:
    def var c-parte1a           as char no-undo.
    def var c-parte1b           as char no-undo.
    def var c-parte1            as char no-undo.
    
    def var c-parte2a           as char no-undo.
    def var c-parte2b           as char no-undo.
    def var c-parte2            as char no-undo.
    
    def var c-parte3a           as char no-undo.
    def var c-parte3b           as char no-undo.
    def var c-parte3            as char no-undo.
    
    def var c-parte4a           as char no-undo.
    def var c-parte4b           as char no-undo.
    def var c-parte4            as char no-undo.
    
    def var c-parte5a           as char no-undo.
    def var c-parte5b           as char no-undo.
    def var c-parte5            as char no-undo.
    
    def var c-alfabeto-maior    as char extent 27 initial [ 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 
                                                    'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V',
                                                    'X', 'W', 'Y', 'X' ] no-undo.
    
    def var c-senha             as char no-undo.
    
    assign  c-parte1a   =   string( random( 1, 2 ) )
            c-parte1b   =   string( random( 1, 7 ) )        
            c-parte1    =   ( c-parte1a + c-parte1b )
            .
    
    assign  c-parte2a   =   string( random( 1, 2 ) )
            c-parte2b   =   string( random( 1, 7 ) )        
            c-parte2    =   ( c-parte2a + c-parte2b )
            .
    
    assign  c-parte3a   =   string( random( 1, 2 ) )
            c-parte3b   =   string( random( 1, 7 ) )        
            c-parte3    =   ( c-parte3a + c-parte3b )
            .
    
    assign  c-parte4a   =   string( random( 1, 2 ) )
            c-parte4b   =   string( random( 1, 7 ) )        
            c-parte4    =   ( c-parte4a + c-parte4b )
            .
    
    assign  c-parte5a   =   string( random( 1, 2 ) )
            c-parte5b   =   string( random( 1, 7 ) )        
            c-parte5    =   ( c-parte5a + c-parte5b )
            .
    
    /* Senha com números */
    assign  c-senha     =   ( c-parte1 + c-parte2 + c-parte3 + c-parte4 + c-parte5 )
            .
    
    MESSAGE 'c-parte1a ' c-parte1a   skip
            'c-parte1b ' c-parte1b   skip
            'c-parte1 ' c-parte1        skip
            'c-alfabeto-maior'  c-alfabeto-maior[ int(c-parte1) ]           skip
            'c-alfabeto-menor'  lower( c-alfabeto-maior[ int(c-parte1) ])   skip
            'c-senha' c-senha
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
    /* Senha com números e letras */
    assign  c-senha     =   ( c-alfabeto-maior[ int(c-parte1) ] + c-parte2 + c-parte3 + c-parte4 + lower(c-alfabeto-maior[ int(c-parte5) ] ) )
            .
    
    MESSAGE 'c-senha com letras e numeros ' c-senha
        VIEW-AS ALERT-BOX INFO BUTTONS OK.
    
    Abs.,

Compartilhe esta Página