[Ajuda] Criptografa mais nгo descriptografa
#1

Boa noite eu estava fazendo esse sistema para criptografar em cуdigo ASCII, ele estб criptografando certinho.

Por exemplo a letra O maiъscula na tabela do cуdigo ASCII й referente б 79 e a letra A maiъscula da Chave de Criptografia й referente б 65 na tabela. Entгo 79 * 65 = 5135 que й o resultado jб criptografado.

Porйm estou tendo dor de cabeзa para fazer descriptografar, acabou "Bugando" meu cйrebro.
PHP код:
new Chave[] = "AbCdEfGhIjKlMnOp";
new 
TChave 16;
new 
TCript[100000];
CMD:en(playeridparams[]) {
    new 
s[50];
    if(
sscanf(params"s[50]"s)) return SendClientMessage(playerid, -1"[ ERRO ] {FF0000}use: /en [texto]");
    
EncryptToPlayer(playerids);
    return 
1;
}
CMD:de(playeridparams[]) {
    new 
s[50];
    if(
sscanf(params"s[50]"s)) return SendClientMessage(playerid, -1"[ ERRO ] {FF0000}use: /de [texto]");
    
DeEncryptToPlayer(playerids);
    return 
1;
}
stock EncryptToPlayer(playeridstring[]) {
    new 
ChaveInteger@, str@[500], bradoks@[124];
    for( new 
i@ = 0i@ < strlen(string); i@++) {
        
TCript[i@] = string[i@];
    }
    
printf("\n -- %d -- \n"TCript[0]);
    new 
call@ = 0;
    for( new 
x@ = 0x@ < TChavex@++) {
        
ChaveInteger@ = Chave[x@];
        
TCript[call@] *= ChaveInteger@;
        
call@++;
        
format(bradoks@, sizeof(bradoks@), "%d"TCript[call@]);
        
strcat(str@, bradoks@);
    }
    
printf("\n -- %d -- \n"TCript[0]);
    
format(bradoks@, sizeof(bradoks@), "%s"str@);
    
SendClientMessage(playerid, -1"Criptografia realizada com sucesso !");
    
SendClientMessage(playerid, -1bradoks@);
    
DOF2_CreateFile("criptografado.ini");
    
DOF2_SetString("criptografado.ini""Crip"bradoks@);
    
DOF2_SetString("criptografado.ini""TextCrip"string);
    
DOF2_SaveFile();
    return 
1;
}
stock DeEncryptToPlayer(playeridstring[]) {
    new 
valor@[111], pos_chave@, pos_texto@;
    while(
strlen(string)) {
        
valor@[pos_texto@] = string[pos_texto@];
        
valor@[pos_texto@] /= Chave[pos_chave@];
        
TCript[pos_texto@] = valor@[pos_texto@];
        
pos_texto@++;
        
pos_chave@ = pos_chave@ == (TChave-1) ? (0) : pos_chave@++;
    }
    
printf("\n -- %d -- playerid = %d\n"TCript[0], playerid);
    return 
1;

Reply
#2

Alguйm ?
Reply
#3

Eu vou user seu exemplo dado aqui.
79 * 65 = 5135

Voce precisara um dos seus numeros para decriptografar seu codigo.
Nesse caso voce poderia escolher um dos seus numeros e dividir ele com o resultado 5135
Por exemplo 79/5135 = 65.

Vou tentar explicar isso


Talvez tente usar XOR in vez de multiplicacao?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)