Jump to content

kleberalegria

Membros
  • Contagem de Conteúdo

    1
  • Ingressou

  • Última visita

Clientes & Parceiros

  • Você é um cliente TecnoSpeed?
    Não
  • Você é um parceiro da Casa do Desenvolvedor?
    Não

Conquistas de kleberalegria

0

Reputação na Comunidade

  1. Olá Caros amigos, boa noiteEstou fazendo teste de criptografia de strings, para mascarar a senha no banco de dados, que é cadastrado a pessoa que irá fazer o login no sistema, no entanto, a criptografia funciona no caso de quando grava no banco de dados, mas quando vamos utilizar ela pra descriptografar e fazer ela ler e passar a senha mesmo ela não vai, vou postar o código aqui, para ver onde eu estou errando, vale lembrar, que é apenas um código de testes para depois eu passar para o sistema em produção.... function Codifica(Action, Src: String): String; Label Fim; // Função para criptografar e descriptografar string''s var KeyLen: integer; KeyPos: integer; OffSet: integer; Dest, Key: String; SrcPos: integer; SrcAsc: integer; TmpSrcAsc: integer; Range: integer; begin try if (Src = '''') Then begin Result := ''''; Goto Fim; end; Key := ''YUQL23KL23DF90WI5E1JAS467NMCXXL6JAOAUWWMCL0AOMM4A4VZYW9KHJUI2347EJHJKDF3424SKL K3LAKDJSL9RTIKJ''; Dest := ''''; KeyLen := Length(Key); KeyPos := 0; SrcPos := 0; SrcAsc := 0; Range := 256; if (Action = UpperCase(''C'')) then begin Randomize; OffSet := Random(Range); Dest := Format(''%1.2x'', [OffSet]); for SrcPos := 1 to Length(Src) do begin Application.ProcessMessages; SrcAsc := (Ord(Src[SrcPos]) + OffSet) Mod 255; if KeyPos < KeyLen then KeyPos := KeyPos + 1 else KeyPos := 1; SrcAsc := SrcAsc Xor Ord(Key[KeyPos]); Dest := Dest + Format(''%1.2x'', [SrcAsc]); OffSet := SrcAsc; end; end Else if (Action = UpperCase(''D'')) then begin OffSet := StrToInt(''$'' + Copy(Src, 1, 2)); SrcPos := 3; repeat SrcAsc := StrToInt(''$'' + Copy(Src, SrcPos, 2)); if (KeyPos < KeyLen) Then KeyPos := KeyPos + 1 else KeyPos := 1; TmpSrcAsc := SrcAsc Xor Ord(Key[KeyPos]); if TmpSrcAsc <= OffSet then TmpSrcAsc := 255 + TmpSrcAsc - OffSet else TmpSrcAsc := TmpSrcAsc - OffSet; Dest := Dest + Chr(TmpSrcAsc); OffSet := SrcAsc; SrcPos := SrcPos + 2; until (SrcPos >= Length(Src)); end; Result := Dest; Fim: Except Result := ''1''; end; Exemplo que estou usando para gravar 1 Dmdados.tbUserSENHA_USUARIO.AsString:= Codifica(''C'', edtsenha.text); e Exemplo que estou tentando ler e não funciona qry_User.Active:= true; if (qry_User.locate(''nome_usua'',edtUsuario.Text,[])) and (qry_User.fieldbyname(''senha_usuario'').asstring = Codifica(''D'', edtSenha.Text)) then begin self.Close; qry_user.Active:= false end Bom, está assim porque estou testando essa função, também gostaria de alguns outros exemplos para poder testar e estar implementando ...AtenciosamenteAgradeço desde já.
×
×
  • Create New...