Hoje é 27/06/25 - Dia Internacional do Diabético; Dia Nacional do Progresso;


22/11/2006
Trabalhando com senhas no SQL Server

Tipo de notícia: Desenvolvimento

1. Consideramos um banco que possui a tabela "Usuarios". Essa tabela possui os campos "id_usuario", "login_usuario" e "senha_usuario";

2. Como padrão, utilizamos o "id_usuario" como chave primária, e o "login_usuario" como UNIQUE CONSTRAINT (para evitar uma repetição de logins). Esses campos, respectivamente, são INT AUTOINCREMENT e VARCHAR(20);

3. Esse passo é BASTANTE importante. Ao invés de colocarmos o campo "senha_usuario" como VARCHAR ou outro tipo texto, deve-se colocá-lo como VARBINARY. Feito isso, a estrutura está pronta;

4. Agora é só manipular tudo via SQL. Quando for cadastrar um usuário, não se pode mais dar um INSERT normal, e sim, um INSERT do tipo:

Feito isso, será inserido um registro que receberá um código de auto-incremento no campo "id_usuario", com o login = Juary e com uma senha = 123456. Feito isso, o procedimento está concluido. Para tal, tente dar o seguinte comando:

Esse SELECT retornará o registro que você inseriu, entretanto, no campo "senha_usuario", ele retornará caracteres "loucos", de forma que você não poderá visualizar a senha nem dessa forma e nem utilizando o Enterprise Manager;

5. Provavelmente, caso fosse omitida essa parte, alguém tentaria fazer o seguinte comando:

Um comando como esse (que normalmente poderia ser realizado pra algum tipo de autenticação), não irá fucionar de forma nenhuma. A solução então para retornar os dados que foram inseridos através do INSERT é a seguinte:

Esse comando retornará com sucesso o registro requisitado.

Agora explicando o funcionamento. O campo VARBINARY, quando recebe aquele INSERT, o registro fica encriptado (PWDENCRYPT)no campo "senha_usuario", de forma que não se pode mais "desencriptar". Após isso, o comando CONVERT, transforma o texto em VARBINARY, o que torna impossível se visualizar a senha.

Como o que foi encriptado não se pode mais "desencriptar", utilizamos o comando PWDCOMPARE para COMPARAR o que foi digitado, ou seja, não se pode re-tranformar o que foi encriptado antes na senha original, e sim, apenas comparar a senha digitada pelo usuário, convertendo-a para VARBINARY. Se isso for VERDADEIRO (por isso o "=1" no SELECT), o SELECT é realizado retornando o registro, de forma que você pode manipulá-lo da forma que desejar.

Como nem o Admin tem acesso à senha, pode-se apenas implementar uma atualização de senha (que, lógico, apenas o Admin poderia fazer com os usuários, e o usuário com si próprio), que seria da seguinte maneira, utilizando o exemplo citado:

Dessa forma, o usuário Juary teria a senha mudada.

Esse procedimento simples faz com que o banco de dados se torne mais seguro já que a senha não pode ser visualizada (apenas alterada). E, obviamente, a função de ser alterar a senha, só deve ser disponibilizada para as pessoas certas...

 


Produtos

Starlink 4ª Geração

Starlink 4ª Geração

Antena de Internet Starlink Via Satélite Standard Kit V4 com Roteador

Caneca Stanley

Caneca Stanley

Canaca Stanley 1.18L

Starlink Mini

Starlink Mini

Antena de internet Via Satélite Starlink Mini

Cervejeira Consul 82 L

Cervejeira Consul 82 L

Cervejeira Consul Titanium 82L Display Na Porta

DJI Mini 4K

DJI Mini 4K

Drone DJI Mini 4K controle sem tela

Chopeira Beertender

Chopeira Beertender

Chopeira Beertender Krups Heineken com Capacidade de 5 Litros Preta


Notícias

Data Título
FINECAP 2025 09/06/2025 FINECAP 2025
Programação completa do Pingo da Mei Dia 2025 05/06/2025 Programação completa do Pingo da Mei Dia 2025
Abracerva divulga as melhores cervejas do Nordeste do Brasil de 2025 19/05/2025 Abracerva divulga as melhores cervejas do Nordeste do Brasil de 2025
Pint of Science Natal 2025 19/05/2025 Pint of Science Natal 2025
Expo Seridó 2025 18/05/2025 Expo Seridó 2025
Festival Gastronômico e Cultural de Martins 2025 18/05/2025 Festival Gastronômico e Cultural de Martins 2025
São João de Gravatá 2025 05/05/2025 São João de Gravatá 2025
Festa de Santana de Caicó 2025 01/05/2025 Festa de Santana de Caicó 2025
São João Arretado de Carpina 2025 23/04/2025 São João Arretado de Carpina 2025
São João da Carvalheira 2025 12/04/2025 São João da Carvalheira 2025
Circuito Gastronômico Sabores da Serra 2025 02/04/2025 Circuito Gastronômico Sabores da Serra 2025
Mossoró Cidade Junina 2025 02/04/2025 Mossoró Cidade Junina 2025