BHAMF Posted June 24, 2018 at 02:20 PM Report #611100 Posted June 24, 2018 at 02:20 PM Estava aqui, tentando colocar a criptografia de MD5 num arquivo, mas, ao compilar, dá um erro: Can't read or write variables of this type (não se pode ser ou escrever variáveis deste tipo). Mas, então, como consigo escrever em um arquivo? Eis o código: program teste md5; uses md5; begin assign(t,'cad1.vlna'); rewrite(t); append(t); write(t,MDString('Senha1', MD_Version_5)); close(t); end. Já fiz outros teste, mas só consigo verificar a senha dentro da própria memória: program testMD5; uses md5, Crt; procedure telaDeEntrada; var senha : string; hash1 : TMDDigest; hash2 : TMDDigest; senha2 : string; begin clrscr; write('Digite uma senha | >:'); readln(senha); hash1:= MDString(senha, MD_VERSION_5); writeln; write('Senha ', senha, ' armazenada como: ', MDPrint(hash1)); writeln; write('Agora redigite-a. | >: '); readln(senha2); hash2:= MDString(senha2, MD_VERSION_5); if (MDMatch(hash1, hash2) = true) then begin writeln; write('Senha 1:', senha, ' hash1: ', MDPrint(hash1)); writeln; write('Senha 2:', senha2, ' hash2: ', MDPrint(hash2)); writeln; writeln('Acesso concedido'); readln; end else begin writeln; write('Senha 1:', senha, ' hash1: ', MDPrint(hash1)); writeln; write('Senha 2:', senha2, ' hash2: ', MDPrint(hash2)); writeln; writeln('Acesso negado'); readln; end; end; begin telaDeEntrada; end. Preciso inserir a hash no arquivo e depois verificar se a hash coincide com o que foi digitado. Mas não estou conseguindo inserir pelo erro que deu... Peço ajuda a vocês... Fico agradecido desde já! B.H.A.M.F. 23/06/2018 | 12:58 (Horário de Brasília) Brenio Hallison A.M. Filho
BHAMF Posted June 24, 2018 at 02:22 PM Author Report #611101 Posted June 24, 2018 at 02:22 PM Consegui adicionar ao arquivo da seguinte forma: [...] uses md5, Crt; var SenhaHash : string; t : text; SenhaHash:= MD5Print(MD5String('Senha1')); assign(t,'cad1.vlna'); rewrite(t); append(t); write(t, SenhaHash); close(t); [...] Mas ainda assim, não consigo verificar com o que foi digitado... se os dois estão iguais ou diferentes: [...] uses md5, Crt; SENHA : string; var t : text; hash1, hash2 : TMDDigest; [...] assign(t, 'cad1.vlna'); reset(t); readln(t,SENHA); close(t); write('Digite a senha: '); readln(A); hash1 := MD5String(A); if (hash1 = SENHA) then //isto irá dar um erro no operador "="... ("Operator is not overloaded "TMDDigest" = "AnsiString"") [...] end. if (MDMatch(hash1, SENHA) = true) then begin //Este dará um erro pois a procedure só aceita as variáveis tipo TMDDigest... [...] end. { Sintaxe: function MDMatch(const Digest1, Digest2: TMDDigest): Boolean; } Espero ajuda... Obrigado desde já! B.H.A.M.F. 23/06/2018 | 14:29 (Horário de Brasília) Este tópico foi publicado em outro lugar, por isso não viram-no aqui dia 23... Espero ajuda... Obrigado desde já. B.H.A.M.F 24/06/2018 | 11:23 (Horário de Brasília) Brenio Hallison A.M. Filho
BHAMF Posted August 4, 2018 at 02:27 PM Author Report #611497 Posted August 4, 2018 at 02:27 PM O que acham de eu usar o comando Move(var 1, var2); ? Brenio Hallison A.M. Filho
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now