Jump to content
sulea

decriptare [usor]

Recommended Posts

Posted

se da urmatoarea functie cu care s-a criptat un text.

function cript

for i de la 1 la lungime_text-1

sir=sir+3

sir[i+1]=sir[i+1]-5

end for

sir=sir+i

end function cript

avem outputul:

dqt+fcpxmecl_sp_rc

care a fost textul initial care s-a criptat?

(este vorba de o echipa de fotbal mereu 'la moda')

trimiteti raspunsurile prin pm

Posted

am primit 6 raspunsuri diferite, si anume:

asv-herzogenauratp

fsv-herzogenaurate

arv-herzogenaurate

asv-herzogenauradh

asv-herzogenaurach

asv herzogenaura (ar fi trebuit sa scrii inputul)

eu dupa cine sa ma iau?

Posted
am primit 6 raspunsuri diferite, si anume:

asv-herzogenauratp

fsv-herzogenaurate

arv-herzogenaurate

asv-herzogenauradh

asv-herzogenaurach

asv herzogenaura (ar fi trebuit sa scrii inputul)

eu dupa cine sa ma iau?

asv-herzogenaurate

Posted

in PM am trimis cu tp la final... acum mi-am dat seama ca ar trebui sa fie tV

ok...hai sa vedem cum functioneaza din cate am inteles:

primul caracter a fost incrementat cu 3 si s-a obtinut:

d => d-3 = a

urmatoarele pana la penultimul au fost incrementate cu 3 si decrementate cu 5, deci decrementate cu 2 si s-a obtinut:

q => q+2 = s

t => t+2 = v

+ => ++2 = -

f => f+2 = h

c => c+2 = e

p => p+2 = r

x => x+2 = z

m => m+2 = o

e => e+2 = g

c => c+2 = e

l => l+2 = n

_ => _+2 = a

s => s+2 = u

p => p+2 = r

_ => _+2 = a

r => r+2 = t

Ultimul caracter e decrementat cu 5 si incrementat cu 18 deci + 13

c => c-13 = V

deci rezultatul ar trebui sa fie "asv-herzogenauratV" - ceea ce nu are nici o logica

Asta in cazul in care for-ul e cel din pseudocod, nu cel din C cu strict <

Posted

sulea.php


<?php
function sulea($s){
for($i=0; $i<strlen($s); $i++){
$s[$i]=chr(ord($s[$i])+3);
if($i<strlen($s)-1)
$s[$i+1]=chr(ord($s[$i+1])-5);
}
return $s;
}
function unsulea($s){
$len=strlen($s);
for($i=1; $i<$len-1; $i++){
$s[$i]=chr(ord($s[$i])+2);
}
$s[0]=chr(ord($s[0])-3);
$s[$len-1]=chr(ord($s[$len-1])+2);
return $s;
}
echo sulea("steaua");
echo "<br>";
echo unsulea("vrc_s_");
echo "<br>";
echo unsulea("dqt+fcpxmecl_sp_rc");
//echo unsulea(sulea("Ana are mere."));
?>
<!--
a b c d
+3 -5
+3 -5
+3 -5
+3 -5
-->

Posted

function cript

for i de la 1 la lungime_text-1

sir=sir+3

sir[i+1]=sir[i+1]-5

end for

sir=sir+i

end function cript

sulea.php


<?php
function sulea($s){
for($i=0; $i<strlen($s); $i++){
$s[$i]=chr(ord($s[$i])+3);
if($i<strlen($s)-1)
$s[$i+1]=chr(ord($s[$i+1])-5);
}
return $s;
}
function unsulea($s){
$len=strlen($s);
for($i=1; $i<$len-1; $i++){
$s[$i]=chr(ord($s[$i])+2);
}
$s[0]=chr(ord($s[0])-3);
$s[$len-1]=chr(ord($s[$len-1])+2);
return $s;
}
...
?>

@3348399: e ok ce ai scris tu, doar ca iti lipseste partea cu modificarea ultimului caracter ;)

Posted
la ultimul e + 5

da... am vazut ca ai pus + 5

dar uita-te in scriptul lui sulea din postul anterior linia scrisa cu rosu...

Dupa ce iese din for, face urmatoarea atribuire: sir=sir+i

aici i are valoarea 18 ;)

Posted
pai i-ul parca merge pana la length-1, sau ma insel?

oricum, eu inca astept raspunsuri :)

ok...nu stiu de ce aveam impresia ca atunci cand se iese din for-ul din pseudocod i e mai mare decat marginea superioara a intervalului

In cazul asta ultimele doua caractere sunt r + 2 - 17 = c

si c + 5 = h

raspunsul: asv-herzogenaurach

Posted
ok...nu stiu de ce aveam impresia ca atunci cand se iese din for-ul din pseudocod i e mai mare decat marginea superioara a intervalului

ai gandit bine, insa la for-uri nu se depasesc limitele (cel putin in pascal).

am transformat pseudocodul in limbaj pascal, si am scris si instructiunile de decriptare.:

program test;
uses crt;
var i:integer;
sir:string;

begin
clrscr;
readln(sir);

// criptarea :
for i:=1 to length(sir)-1 do begin
sir[i]:=chr(ord(sir[i])+3);
sir[i+1]:=chr(ord(sir[i+1])-5);
end;
sir[i]:=chr(ord(sir[i])+i);
writeln;
writeln('textul criptat este: ',sir);
writeln('i-ul la iesirea din for este: ',i);
writeln;

//decriptarea
sir[i]:=chr(ord(sir[i])-i);
for i:=length(sir)-1 downto 1 do begin
sir[i+1]:=chr(ord(sir[i+1])+5);
sir[i]:=chr(ord(sir[i])-3);
end;
writeln('textul decriptat este: ',sir);
writeln('i-ul la iesirea din for este: ',i);
writeln;

end.

cine poate sa-l transforme in c ?

referitor la challenge, felicitari tuturor participantilor.

+rep lui totti93 pt ca a fost primul care a raspuns corect

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...