Alguem teria alguma sugestão para fazer uma espécie de autenticação para ser impresso quando um CAIXA recebe o pagamento de uma conta e autentica um boleto (por exemplo). Eu pensei em imprimir uma espécie de logotipo da empresa. Eu sei que qualquer coisa que você eu fizer será passível de falsificação. Há muito tempo a trás tinha visto um logotipo do TOYA que fazia impressão em impressoras matriciais e era feito ponto a ponto (em bits, creio eu).
Lí num FORUM que aconselhava gerar um código no programa que valide o pagamento, algum calculo relacionado com data do pagamento com o código do sacado e um dígito verificador do cálculo.
Se alguém puder mandar uma sugestão eu agradeceria.
Um clip-abraço :)Pos
Auntenticação de pagamentos
Moderador: Moderadores
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Eu acabei encontrando o fonte e desejo compartir, mas ainda acho que não seria uma solução definitiva, e também não sei se irá funcionar numa BETMATECH.
Fico no aguardo para mais alguma idéia.
Um clip-abraço
Código: Selecionar todos
/*
Compilar
Clipper logotoya /n
rtlink fi logotoya
Autor: toya
toya@alphams.com.br
htt://www.alphams.com.br/empresas/toya/index.htm
*/
func logotoya()
local tipoprn := 2
* 1. Epson - matricial
* 2. Mini Impressora (48 colunas)
local m_val := {128,64,32,16,8,4,2}
local nbytes := 91
local m_soma := array(nbytes)
local m_toya := {}
aadd(m_toya,'±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±')
aadd(m_toya,'±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±')
aadd(m_toya,'±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±****±±±±±±±±±±±****±**±±±±*****±±±±±±±±±±±±****±±±±±±±±±')
aadd(m_toya,'±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±*****±±±±±±±±±******±±***±±±*****±±±±±±±±±±******±±±±±±±±')
aadd(m_toya,'±±±±±±±±±±±±±*±±±±±*±±±±±±±±±±±±±******±±±±±±±±*******±±±***±±±*****±±±±±±±±********±±±±±±±')
aadd(m_toya,'±±±±±±*****±±±*±±±*±±±*****±±±±±±*********±±±±**±±±±±±±±±±***±±±*****±±±±±±******±±±±±±±±±±')
aadd(m_toya,'±±±±±**±±±±**±±***±±**±±±±**±±±±±*********±±±***±±±±±±±±±±±***±±±*****±±±±******±±**±±±±±±±')
aadd(m_toya,'±±±±±*±±**±±±**±*±**±±±**±±*±±±±±*********±±±***±±±±±±±±±±****±±±±*****±±******±±***±±±±±±±')
aadd(m_toya,'±±±±±**±±**±±±±*±*±±±±**±±**±±±±±******±±±±±**********±±±******±±±±***********±±*****±±±±±±')
aadd(m_toya,'±±±±±±**±±±±±±±±*±±±±±±±±**±±±±±±******±±±±±**********±±*******±±±±±*********±±******±±±±±±')
aadd(m_toya,'±±±±±±±±*****±±*±*±±*****±±±±±±±±******±±±±±**********±********±±±±±±*******±±*******±±±±±±')
aadd(m_toya,'±±±±±±±±±±±±***±*±***±±±±±±±±±±±±******±±±±±********±**********±±±±±*******±±********±±±±±±')
aadd(m_toya,'±±±±±±±±±***±±±*±*±±±***±±±±±±±±±******±±±±±*******±±**********±±±±*******±±*********±±±±±±')
aadd(m_toya,'±±±±±±±**±±±±±*±*±*±±±±±**±±±±±±±******±±±±±******±±±**********±±±*******±±**********±±±±±±')
aadd(m_toya,'±±±±±±**±**±±**±*±**±±**±**±±±±±±******±±±±±±****±±±±±±±±±±***±±±*******±±***********±±±±±±')
aadd(m_toya,'±±±±±±±**±±±**±±*±±**±±±**±±±±±±±******±±±±±±***±±±±±±±±±±±***±±*******±±*****±******±±±±±±')
aadd(m_toya,'±±±±±±±±**±**±±±±±±±**±**±±±±±±±±******±±±±±±±***±±±±±±±±±±**±±*******±±******±±*****±±±±±±')
aadd(m_toya,'±±±±±±±±±±**±±±±±±±±±**±±±±±±±±±±************±±***±±±*******±±*******±±**************±±±±±±')
aadd(m_toya,'±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±************±±***±±******±±*******±±******±±±*****±±±±±±±')
aadd(m_toya,'±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±************±±±**±****±±±*******±±******±±±±****±±±±±±±±')
aadd(m_toya,'±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±')
set cons off
set prin on
if tipoprn = 1
? chr(27)+'A'+chr(8)
else
? chr(27)+'@'
?? chr(27)+'A'+chr(8)
endi
*
*
* ?? chr(27)+'Y'+chr(64)+chr(0)
* | | |
* | | +--- n2
* | +---------- n1
* +---------------- p
*
* p -> altera a densidade
* p=K densidade simples
* p=L densidade dupla
* p=Y alta velocidade com densidade dupla
* p=Z densidade qu drupla
*
* n1 e n2 definem a quantidade de colunas gr ficas a serem transmitidas
*
* No nosso exemplo ter¡amos:
*
* 64 colunas / 256 = 0.25
* portanto,
* n2 ser igual a 0 que ‚ a parte inteira da divisÆo
* n2 = 0
*
* 64 colunas - (256 * n2) = 64
* portanto,
* n1 ser igual a 64
*
*
*
densidade := 'K'
caracter := '±'
afill(m_soma,0)
for i=1 to 7
a := m_toya[i]
for j=1 to nbytes
if subs(a,j,1)= caracter
m_soma[j] := m_soma[j] + m_val[i]
endi
next
next
?? chr(27)+densidade+chr(nbytes)+chr(0)
for i=1 to nbytes; ?? chr(m_soma[i]+1);next
?? ' toya Comercial Informatica'
?
afill(m_soma,0)
for i=1 to 7
a := m_toya[i+7]
for j=1 to nbytes
if subs(a,j,1)= caracter
m_soma[j] := m_soma[j] + m_val[i]
endi
next
next
?? chr(27)+densidade+chr(nbytes)+chr(0)
for i=1 to nbytes; ?? chr(m_soma[i]+1);next
?
afill(m_soma,0)
for i=1 to 7
a := m_toya[i+14]
for j=1 to nbytes
if subs(a,j,1)= caracter
m_soma[j] := m_soma[j] + m_val[i]
endi
next
next
?? chr(27)+densidade+chr(nbytes)+chr(0)
for i=1 to nbytes; ?? chr(m_soma[i]+1);next
?? '(c)-1998~1999 Fone: (067) 441.2861'
?
?
?
? chr(27)+'@'
?
?
?
?
set cons on
set prin off
return nilUm clip-abraço
Uma idéia que eu usaria: imprimir o hash MD5 na própria autenticação. Se alguém quiser falsificar, terá de saber quais dados foram utilizados no cálculo. Eu arrisco dizer que será impossível de falsificar. Principalmente, se você "somar" à string dos dados uma string secreta que SÓ você conhece.
Logicamente, você teria de ter uma opção no programa que mostre o hash que a autenticação deverá ter. Mas com senha para acesso privilegiado, claro.
[]'s
Maligno
http://www.buzinello.com/prg
Logicamente, você teria de ter uma opção no programa que mostre o hash que a autenticação deverá ter. Mas com senha para acesso privilegiado, claro.
[]'s
Maligno
http://www.buzinello.com/prg
- Pablo César
- Usuário Nível 7

- Mensagens: 5312
- Registrado em: 31 Mai 2006 10:22
- Localização: Curitiba - Paraná
Inclusive vou repetir o link, para o caso de mais alguém se interessar:Pablo César escreveu:É mesmo !. Não lembrava do MD5 que você inclusive disponibilizou pra nós.
http://buzinello.com/download/md5.zip
[]'s
Maligno
http://www.buzinello.com/prg
