[Pedido] Encriptaзгo de senhas jб criadas.
#1

Gente, em 1 semana eu fiquei me matando para achar/fazer uma encriptaзгo das senhas das contas do servidor que jб estгo criadas, jб tentei do GF,rjjj e alguns inglкs. mais as senhas buga, fala que estб errada etc. gostaria de uma base para encriptaзгo das senhas sem bugar preciso disso por favor, tchau.

Reply
#2

Tenta usar a include 'lethaldudb2'

PHP код:
/*
 *            DUDB functions
 *       © Copyright 2006-2007 by DracoBlue
 *
 * @version   : 2.4
 * @author    : DracoBlue (http://dracoblue.net)
 * @date      : 8th May 2006
 * @update    : 12th July 2007
 * @require   : DUtils 1.10
 * @require   : DINI 1.5
 *
 * This Unit is provided as is (no warranties).
 * Feel free to use it, a little message in 
 * about box is honouring thing, isn't it?
 *
 */

#if defined _dudb_included
  #endinput
#endif

#define _dudb_included
#pragma library dutils

#include <dutils>
#include <dini>
#define dUser(%1).( udb_User(%1,
#define dUserINT(%1).( udb_UserInt(%1,
#define dUserSet(%1).( udb_UserSet(%1,
#define dUserSetINT(%1).( udb_UserSetInt(%1,
#define dUserSetFLOAT(%1).( udb_UserSetFloat(%1,
#define dUserFLOAT(%1).( udb_UserFloat(%1,

stock udb_hash(buf[]) {
    new 
length=strlen(buf);
    new 
s1 1;
    new 
s2 0;
    new 
n;
    for (
n=0n<lengthn++)
    {
       
s1 = (s1 buf[n]) % 65521;
       
s2 = (s2 s1)     % 65521;
    }
    return (
s2 << 16) + s1;
}

stock udb_encode(nickname[]) {
  new 
tmp[MAX_STRING];
  
set(tmp,nickname);
  
tmp=strreplace("_","_00",tmp);
  
tmp=strreplace(";","_01",tmp);
  
tmp=strreplace("!","_02",tmp);
  
tmp=strreplace("/","_03",tmp);
  
tmp=strreplace("\\","_04",tmp);
  
tmp=strreplace("[","_05",tmp);
  
tmp=strreplace("]","_06",tmp);
  
tmp=strreplace("?","_07",tmp);
  
tmp=strreplace(".","_08",tmp);
  
tmp=strreplace("*","_09",tmp);
  
tmp=strreplace("<","_10",tmp);
  
tmp=strreplace(">","_11",tmp);
  
tmp=strreplace("{","_12",tmp);
  
tmp=strreplace("}","_13",tmp);
  
tmp=strreplace(" ","_14",tmp);
  
tmp=strreplace("\"","_15",tmp);
  
tmp=strreplace(":","_16",tmp);
  
tmp=strreplace("|","_17",tmp);
  
tmp=strreplace("=","_18",tmp);
  return 
tmp;
}

stock udb_decode(nickname[]) {
  new 
tmp[MAX_STRING];
  
set(tmp,nickname);
  
tmp=strreplace("_01",";",tmp);
  
tmp=strreplace("_02","!",tmp);
  
tmp=strreplace("_03","/",tmp);
  
tmp=strreplace("_04","\\",tmp);
  
tmp=strreplace("_05","[",tmp);
  
tmp=strreplace("_06","]",tmp);
  
tmp=strreplace("_07","?",tmp);
  
tmp=strreplace("_08",".",tmp);
  
tmp=strreplace("_09","*",tmp);
  
tmp=strreplace("_10","<",tmp);
  
tmp=strreplace("_11",">",tmp);
  
tmp=strreplace("_12","{",tmp);
  
tmp=strreplace("_13","}",tmp);
  
tmp=strreplace("_14"," ",tmp);
  
tmp=strreplace("_15","\"",tmp);
  
tmp=strreplace("_16",":",tmp);
  
tmp=strreplace("_17","|",tmp);
  
tmp=strreplace("_18","=",tmp);
  
tmp=strreplace("_00","_",tmp);
  return 
tmp;
}


stock udb_Exists(nickname[]) {
  new 
tmp[MAX_STRING];
  
format(tmp,sizeof(tmp),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
fexist(tmp);
}


stock udb_Remove(nickname[]) {
  new 
tmp[MAX_STRING];
  
format(tmp,sizeof(tmp),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_Remove(tmp);
}

stock udb_UserSetInt(nickname[],key[],value) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_IntSet(fname,key,value);
}

stock udb_UserSetFloat(nickname[],key[],Float:value) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_FloatSet(fname,key,value);
}

stock udb_UserSet(nickname[],key[],value[]) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_Set(fname,key,value);
}

stock udb_User(nickname[],key[]) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  
format(fname,sizeof(fname),dini_Get(fname,key));
  return 
fname;
}

stock Float:udb_UserFloat(nickname[],key[]) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_Float(fname,key);
}

stock udb_UserInt(nickname[],key[]) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_Int(fname,key);
}

stock udb_CheckLogin(nickname[],pwd[]) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  if (
udb_UserInt(nickname,"password_hash")==udb_hash(pwd)) return true;
  return 
false;
}

stock udb_Create(nickname[],pwd[]) {
  if (
udb_Exists(nickname)) return false;
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  
dini_Create(fname);
  
udb_UserSetInt(nickname,"password_hash",udb_hash(pwd));
  return 
true;
}

stock udb_RenameUser(nickname[],newnick[]) {
  new 
oldfname[MAX_STRING];
  new 
newfname[MAX_STRING];
  
format(oldfname,sizeof(oldfname),"ServerData/Players/%s.ini",udb_encode(nickname));
  
format(newfname,sizeof(newfname),"ServerData/Players/%s.ini",udb_encode(newnick));
  return 
frenametextfile(oldfname,newfname);

Reply
#3

Quote:
Originally Posted by delete
Посмотреть сообщение
Tenta usar a include 'lethaldudb2'

PHP код:
/*
 *            DUDB functions
 *       © Copyright 2006-2007 by DracoBlue
 *
 * @version   : 2.4
 * @author    : DracoBlue (http://dracoblue.net)
 * @date      : 8th May 2006
 * @update    : 12th July 2007
 * @require   : DUtils 1.10
 * @require   : DINI 1.5
 *
 * This Unit is provided as is (no warranties).
 * Feel free to use it, a little message in 
 * about box is honouring thing, isn't it?
 *
 */
#if defined _dudb_included
  #endinput
#endif
#define _dudb_included
#pragma library dutils
#include <dutils>
#include <dini>
#define dUser(%1).( udb_User(%1,
#define dUserINT(%1).( udb_UserInt(%1,
#define dUserSet(%1).( udb_UserSet(%1,
#define dUserSetINT(%1).( udb_UserSetInt(%1,
#define dUserSetFLOAT(%1).( udb_UserSetFloat(%1,
#define dUserFLOAT(%1).( udb_UserFloat(%1,
stock udb_hash(buf[]) {
    new 
length=strlen(buf);
    new 
s1 1;
    new 
s2 0;
    new 
n;
    for (
n=0n<lengthn++)
    {
       
s1 = (s1 buf[n]) % 65521;
       
s2 = (s2 s1)     % 65521;
    }
    return (
s2 << 16) + s1;
}
stock udb_encode(nickname[]) {
  new 
tmp[MAX_STRING];
  
set(tmp,nickname);
  
tmp=strreplace("_","_00",tmp);
  
tmp=strreplace(";","_01",tmp);
  
tmp=strreplace("!","_02",tmp);
  
tmp=strreplace("/","_03",tmp);
  
tmp=strreplace("\\","_04",tmp);
  
tmp=strreplace("[","_05",tmp);
  
tmp=strreplace("]","_06",tmp);
  
tmp=strreplace("?","_07",tmp);
  
tmp=strreplace(".","_08",tmp);
  
tmp=strreplace("*","_09",tmp);
  
tmp=strreplace("<","_10",tmp);
  
tmp=strreplace(">","_11",tmp);
  
tmp=strreplace("{","_12",tmp);
  
tmp=strreplace("}","_13",tmp);
  
tmp=strreplace(" ","_14",tmp);
  
tmp=strreplace("\"","_15",tmp);
  
tmp=strreplace(":","_16",tmp);
  
tmp=strreplace("|","_17",tmp);
  
tmp=strreplace("=","_18",tmp);
  return 
tmp;
}
stock udb_decode(nickname[]) {
  new 
tmp[MAX_STRING];
  
set(tmp,nickname);
  
tmp=strreplace("_01",";",tmp);
  
tmp=strreplace("_02","!",tmp);
  
tmp=strreplace("_03","/",tmp);
  
tmp=strreplace("_04","\\",tmp);
  
tmp=strreplace("_05","[",tmp);
  
tmp=strreplace("_06","]",tmp);
  
tmp=strreplace("_07","?",tmp);
  
tmp=strreplace("_08",".",tmp);
  
tmp=strreplace("_09","*",tmp);
  
tmp=strreplace("_10","<",tmp);
  
tmp=strreplace("_11",">",tmp);
  
tmp=strreplace("_12","{",tmp);
  
tmp=strreplace("_13","}",tmp);
  
tmp=strreplace("_14"," ",tmp);
  
tmp=strreplace("_15","\"",tmp);
  
tmp=strreplace("_16",":",tmp);
  
tmp=strreplace("_17","|",tmp);
  
tmp=strreplace("_18","=",tmp);
  
tmp=strreplace("_00","_",tmp);
  return 
tmp;
}
stock udb_Exists(nickname[]) {
  new 
tmp[MAX_STRING];
  
format(tmp,sizeof(tmp),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
fexist(tmp);
}
stock udb_Remove(nickname[]) {
  new 
tmp[MAX_STRING];
  
format(tmp,sizeof(tmp),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_Remove(tmp);
}
stock udb_UserSetInt(nickname[],key[],value) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_IntSet(fname,key,value);
}
stock udb_UserSetFloat(nickname[],key[],Float:value) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_FloatSet(fname,key,value);
}
stock udb_UserSet(nickname[],key[],value[]) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_Set(fname,key,value);
}
stock udb_User(nickname[],key[]) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  
format(fname,sizeof(fname),dini_Get(fname,key));
  return 
fname;
}
stock Float:udb_UserFloat(nickname[],key[]) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_Float(fname,key);
}
stock udb_UserInt(nickname[],key[]) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  return 
dini_Int(fname,key);
}
stock udb_CheckLogin(nickname[],pwd[]) {
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  if (
udb_UserInt(nickname,"password_hash")==udb_hash(pwd)) return true;
  return 
false;
}
stock udb_Create(nickname[],pwd[]) {
  if (
udb_Exists(nickname)) return false;
  new 
fname[MAX_STRING];
  
format(fname,sizeof(fname),"ServerData/Players/%s.ini",udb_encode(nickname));
  
dini_Create(fname);
  
udb_UserSetInt(nickname,"password_hash",udb_hash(pwd));
  return 
true;
}
stock udb_RenameUser(nickname[],newnick[]) {
  new 
oldfname[MAX_STRING];
  new 
newfname[MAX_STRING];
  
format(oldfname,sizeof(oldfname),"ServerData/Players/%s.ini",udb_encode(nickname));
  
format(newfname,sizeof(newfname),"ServerData/Players/%s.ini",udb_encode(newnick));
  return 
frenametextfile(oldfname,newfname);

Irei tenta aqui, obrigado.
Reply
#4

Delete, nгo funcionou, mesmo assim obrigado.
Reply
#5

Quote:
Originally Posted by Tiu_DaColombia
Посмотреть сообщение
Irei tenta aqui, obrigado.
Mano usa Whipool. й mt bom e nгo tem como ninguйm ver sua senha, atй se roubar as contas, add msn: vou teda uma forзa, petrick_schoba@live.com
Reply
#6

Quote:
Originally Posted by petrick_schoba
Посмотреть сообщение
Mano usa Whipool. й mt bom e nгo tem como ninguйm ver sua senha, atй se roubar as contas, add msn: vou teda uma forзa, petrick_schoba@live.com
Po nгo uso msn, tem como manda mp por aqui mesmo explicando, abraзos.
Reply
#7

Coloca esse codigo no final do seu GM:

Код:
encrypt(pass[])
{
static charset[] = "qwertyaQWERTYUIOPZXCVBNMLKJHGFDSAsdfghzxcvbnuiopjklm1324657809_";
static css = 63;
new target[MAX_SENHA + 1];
new	j = strlen(pass);
new sum = j;
new	tmpp = 0;
new	i;
new	modw;
for (i = 0; i < MAX_SENHA || i < j; i++)
{
modw = i % MAX_SENHA;
tmpp = (i >= j) ? charset[(7 * i) % css] : pass[i];
sum = (sum + chrfind(tmpp, charset) + 1)		% css;
target[modw] = charset[(sum + target[modw])	% css];
}
target[MAX_SENHA] = '\0';
return target;
}
Para encriptar senhas de contas que ja existam, sugiro vocк salvar a senha encriptada apуs o login do jogador.
Exemplo: Quando ele logar use

dini_Set(file,"Senha",encrypt(senhadigitada));
Reply
#8

Quote:
Originally Posted by [NRG]Dark
Посмотреть сообщение
Coloca esse codigo no final do seu GM:

Код:
encrypt(pass[])
{
static charset[] = "qwertyaQWERTYUIOPZXCVBNMLKJHGFDSAsdfghzxcvbnuiopjklm1324657809_";
static css = 63;
new target[MAX_SENHA + 1];
new	j = strlen(pass);
new sum = j;
new	tmpp = 0;
new	i;
new	modw;
for (i = 0; i < MAX_SENHA || i < j; i++)
{
modw = i % MAX_SENHA;
tmpp = (i >= j) ? charset[(7 * i) % css] : pass[i];
sum = (sum + chrfind(tmpp, charset) + 1)		% css;
target[modw] = charset[(sum + target[modw])	% css];
}
target[MAX_SENHA] = '\0';
return target;
}
Para encriptar senhas de contas que ja existam, sugiro vocк salvar a senha encriptada apуs o login do jogador.
Exemplo: Quando ele logar use

dini_Set(file,"Senha",encrypt(senhadigitada));
Interessante mais nгo haveria um local especifico й qual sйria para colocar o dini_Set(file,"Senha",encrypt(senhadigitada));.
Reply
#9

No processo de Login do seu servidor, o GM irб checar se a senha digitada pelo player confere com a senha armazenada no arquivo da conta em questгo certo?

Caso a senha esteja correta o jogador irб a Spawn.
No bloco de comandos do spawn em caso de login correto, vc armazena a senha encriptada.

Qual sistema de arquivos vocк usa? dini, DOF2 ?
Reply
#10

Eu pensei no mesmo que o Dark. Vocк pode colocar no login, e aн vai atualizando a senha de cada um que loga. Lembre-se de setar no arquivo do player algo como "SenhaEncryptada = true" e antes de encryptar verifica se jб nгo foi encryptada.

Й bom criar um log pra salvar o nъmero de senhas encryptadas, e saber quando vocк deve arrumar o sistema.

Estou pelo celular agora, mas se quando eu entrar no PC, ninguйm tiver postado uma base, eu faзo uma.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)