Senhas
RedefiniĆ§Ć£o de senha
RedefiniƧƵes de senha Ć© um novo recurso oferecido no Beta 6. Para que a redefiniĆ§Ć£o de senha funcione, o servidor deve ser capaz de enviar emails.
Configure uma conta de email em algum lugar que permita o envio de emails via SMTP. O Gmail Ć© uma escolha Ć³bvia para isso.
Abra seu Server/resources/config.json e insira suas informaƧƵes SMTP. Exemplo abaixo.
"SmtpSettings": {
"FromAddress": "ascensiongamedev@gmail.com",
"FromName": "Ascension Admin",
"Host": "smtp.gmail.com",
"Port": 587,
"UseSsl": true,
"Username": "ascensiongamedev@gmail.com",
"Password": "password"
},
Reinicie seu servidor. Se as configuraƧƵes de SMTP estiverem presentes, a mensagem āEsqueceu a senha?ā O botĆ£o aparecerĆ” na tela de login do seu cliente:
Hashing de senha
As senhas sĆ£o hashed antes de serem armazenadas no banco de dados. Cada conta possui um SALT gerado aleatoriamente.
Para verificar se uma senha de texto simples estƔ correta, faƧa o seguinte:
- FaƧa o hash da senha de texto simples com SHA256 e remova quaisquer traƧos resultantes na saĆda.
- Concatine o salt com a senha e use um hash SHA256 no resultado, removendo quaisquer travessƵes na saĆda resultante novamente.
C# ReferĆŖncia de CĆ³digo
var sha = new SHA256Managed();
string pass = BitConverter.ToString(sha.ComputeHash(Encoding.UTF8.GetBytes("plaintext_password"))).Replace("-", "");
string salt = "AD07665AE12767B2B712752595D0E4C16479B01D07E66AF9F9E6081C811C4C21"; //Salt retirado do banco de dados
string encrypted_pass = BitConverter.ToString(sha.ComputeHash(Encoding.UTF8.GetBytes(pass + salt))).Replace("-", "");