Clipper On Line • Ver Tópico - Problemas com codificação e leitura no BD

Problemas com codificação e leitura no BD

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Problemas com codificação e leitura no BD

Mensagempor jjr_rs » 03 Jul 2017 20:40

Olá pessoal, estou me perdendo em uma situação e gostaria da ajuda dos amigos.

Tenho uma aplicação desktop que, entre várias rotinas, tem uma onde crio uma senha codificada e salvo no MySql.

Como é feito:
- o usuário digita a palavra que utilizará como senha
- o sistema recebe a palavra e percorre a mesma, letra por letra
- a cada letra o sistema retorna seu valor ASC e acrescenta + 100 a esse valor e converte novamente para seu respectivo CHR
- cria-se assim uma string com caracteres que são gravados no MySql

Agora estou gerando uma página em php, onde conecto esse BD e carrego os dados deste campo de senha.

O que acontece é que o sistema está trazendo caracteres diferente dos que estão gravados no BD.

Entendo que o PHP pode ter uma codificação diferente na hora de ler do BD. Gostaria de saber se há algum tipo de conversão que devo realizar para conseguir ler esta informação.

Desde já agradeço a ajuda !
Bahsis Sistemas de Gestão
Avatar de usuário

jjr_rs
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 72
Data de registro: 18 Mai 2009 18:56
Cidade/Estado: Porto Alegre
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Problemas com codificação e leitura no BD

Mensagempor alxsts » 03 Jul 2017 22:33

Olá!

Será que é o PHP? Você não cita qual SGBD utiliza mas, pode ser uma configuração na collation do SGBD. Tem como conferir se a string gerada pelo PRG está gravada no BD exatamente igual?

Dependendo do carácter que o usuário digitar, o valor ASCII dele somado a 100 pode gerar um carácter maluco que o BD não suporta e converte para outra coisa.

Este método que você está usando é pouco seguro. Basta alguém que programe saber que soma 100 ao ASCII de cada carácter e quebra a senha...

É mais seguro:

1 - no cadastramento da senha:
- receber o input do usuário
- criar uma string com o retorno de alguma função de criptografia da string do usuário, por exemplo SHA-1 ou SHA-2
- Gravar esta string no banco

2 -No Login
- receber o input do usuário
- criar uma string com o retorno de alguma função de criptografia da string do usuário, por exemplo SHA-1 ou SHA-2
- Comparar esta string com aquela gravada no banco. Se iguais, login ok.

3- No "Esqueci minha senha"
- repetir os passos do cadastramento da senha

Os passos acima estão em conformidade com o PCI-DSS (Payment Card Industry Data Security Standard), que é um organismo voltado à segurança das informações dos usuários de cartões de crédito. Por exemplo: quando se efetua uma compra pela internet, as empresas de e-commerce são proibidas de armazenar em seus bancos de dados o número e código de validação do verso do cartão (CVV) sem estarem criptografados. E mais, só podem armazenar a criptografia por um pequeno espaço de tempo, até que o pagamento seja confirmado ou negado pela administradora do cartão.

Tudo bem que não é à prova de hackers mas, quanto mais segurança melhor...

O tópico NFS-e SP Assinatura RSA-SHA1 pode ilustrar algumas situações.
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2943
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes

Problemas com codificação e leitura no BD

Mensagempor JoséQuintas » 04 Jul 2017 08:58

Pra não fugir muito do esquema atual, poderia gravar o ASCII ou em Hexadecimal, assim usa letras/números comuns que não dependem de codepage.
"165166165166" ou "ABABABABAB"
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18013
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Problemas com codificação e leitura no BD

Mensagempor jjr_rs » 04 Jul 2017 09:35

Caro amigo alxsts,

Fico muito agradecido pela sua ajuda ! Realmente entendo o quão importante é utilizar um mecanismo que esteja de acordo com o PCI-DSS.

Apenas neste caso eu estava realizando um pequeno teste com um sistema antigo e assim tentei manter a forma de controle que utilizava na época. E não se preocupe !!! rsrsrsr... O método que lhe informei não era o que eu utilizei, foi apenas uma forma simples de explicar meu algoritmo. O que utilizo na verdade, realiza uma fórmula de cálculos bem mais elaborados (pensa na "Fórmula de Bhaskara"...algo assim...).

Mesmo assim, como lhe disse, era somente para realizar um teste e ver se era viável... ;)

Caro amigo JoséQuintas,

Agradeço novamente por mais essa ajuda ! Boa saída essa de utilizar a gravação utilizando ASCII ou Hexadecimal. Por ser um sistema que estou utilizando apenas como forma de teste, seguindo o esquema atual, será uma ótima saída !

Mais uma vez agradeço a ajuda e orientação dos amigos e colegas. Muito Obrigado !
Bahsis Sistemas de Gestão
Avatar de usuário

jjr_rs
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 72
Data de registro: 18 Mai 2009 18:56
Cidade/Estado: Porto Alegre
Curtiu: 0 vez
Mens.Curtidas: 2 vezes

Problemas com codificação e leitura no BD

Mensagempor asimoes » 04 Jul 2017 12:36

Acredito que esse assunto está mais apropriado para o fórum Bando de Dados
â–ºHarbour 3.x | Minigui xx-x | HwGuiâ—„
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4919
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 341 vezes
Mens.Curtidas: 258 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 6 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro