Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare destinatie imobil din l...

Recomandare brand cheie dinamomet...

Divorț la notar

Vechime vs km reali
 Android 12 : "Yahoo Mail s-a ...

Bloc Favorit cu RS2

Ce extractor audio (analogic) pen...

Cine suporta cheltuielile de jude...
 Apartament Grecia - Kavala

obtinere venituri PFA / PFI in ti...

Recomandare Volvo

Diferenta suprafata teren
 Plafonare preturi energie

Vanzari foto - CIPA 2023

Recomandare perdele sau draperii ...

Invertor Victron Easysolar-II 48/...
 

conversie base64 challange

- - - - -
  • Please log in to reply
36 replies to this topic

#19
maccip

maccip

    45 ani

  • Grup: Senior Members
  • Posts: 32,895
  • Înscris: 06.01.2007
Ce tot ii dai cu Marian care a inteles?
N-ai inteles tu, dar am inteles si eu.
Si a inteles si MarianG ca eu am inteles.
Acum sunt mai pe inteles?

In programare iti trebuie logica, altfel mai bine te faci om politic. Ti-am si dat solutia, te-am si provocat sa gasesti alta.
Ce mai vrei?

#20
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011

View Postmaccip, on 27 noiembrie 2019 - 23:04, said:

Ce tot ii dai cu Marian care a inteles?
N-ai inteles tu, dar am inteles si eu.
Si a inteles si MarianG ca eu am inteles.
Acum sunt mai pe inteles?

In programare iti trebuie logica, altfel mai bine te faci om politic. Ti-am si dat solutia, te-am si provocat sa gasesti alta.
Ce mai vrei?

Ti-am spus ca solutia trebuie sa contina un sir de caractere. Ce nu ai inteles?

#21
tavitu

tavitu

    Minune: HE a început să emită facturile!

  • Grup: Senior Members
  • Posts: 5,598
  • Înscris: 16.02.2009
Cu mențiunea că nu programez în Javascript deci este posibil să greșesc, am următoarele observații.

btoa(q.split('').reverse().join('')) == 'cXRmaWhTRFJhdGZpaFN'+'GMHFo' && (flag=`${q}`);


În primul rând partea din stânga && trebuie să fie adevărată. String-ul q este inversat și apoi transformat în base64. Rezultatul este apoi comparat cu un alt string în base64. Deci vorbim de alt string, mă rog un string format prin concatenarea (+) a două string-uri, nu de string-ul original q. Dacă partea din stânga este adevărată atunci variabila flag va avea orice valoare va avea variabila q și atunci valoarea funcției va fi valoarea lui q.

Deci răspunsul este orice string care nu este gol și care inversat și transformat in base64 este egal cu stringul dat în base64. base64 și inversare sunt funcții inversabile așa că soluția este evidentă.

Edited by tavitu, 27 November 2019 - 23:38.


#22
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,295
  • Înscris: 10.08.2005
omule, de unde ai dedus-o  pe asta cu inversat este egal cu el insusi?

care variabila flag? parca foloseam 'strict'

care parte din stanga si care adevaraciune?
btoa ste o functie care iti returneaza base64 avand ca argument q ( cu chestiile de le face el acolo split, reverse, join)

Edited by MarianG, 27 November 2019 - 23:47.


#23
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011
Partea asta 'cXRmaWhTRFJhdGZpaFN'+'GMHFo' && (flag=`${q}`); inlocuind q cu "ceva" se evalueaza la "ceva". "ceva" trebuie sa fie == cu btoa("ceva".split('').reverse().join('')).
Voua vi se pare ca ar fi altfel?

#24
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,295
  • Înscris: 10.08.2005

View PostGeorge02, on 27 noiembrie 2019 - 22:36, said:

E bine cum a zis MarianG. El a înțeles. Ok hai sa reformulez:

Aflați X un șir de maxim 18 caractere care inversat și transformat în baza64 este egal cu el însuși.

În ce sens stupida?
hai sa repet ce s-a inteles si ce nu intelegi tu
len(base64(text))!=len(text)

pricepi?!, domnule securitate

View PostGeorge02, on 27 noiembrie 2019 - 23:56, said:

Partea asta 'cXRmaWhTRFJhdGZpaFN'+'GMHFo' && (flag=`${q}`); inlocuind q cu "ceva" se evalueaza la "ceva". "ceva" trebuie sa fie == cu btoa("ceva".split('').reverse().join('')).
Voua vi se pare ca ar fi altfel?
ia vezi ce se intampla fara btoa

#25
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011

View PostMarianG, on 28 noiembrie 2019 - 00:01, said:

len(base64(text))!=len(text)

Deci problema nu are solutie?

#26
tavitu

tavitu

    Minune: HE a început să emită facturile!

  • Grup: Senior Members
  • Posts: 5,598
  • Înscris: 16.02.2009

View PostGeorge02, on 27 noiembrie 2019 - 19:32, said:

Aflați X un șir de maxim 18 caractere care inversat și transformat în baza64 este egal cu el însuși.
Problema asta nu are soluție. Dar nu asta este problema care trebuie rezolvată.

View PostMarianG, on 27 noiembrie 2019 - 23:44, said:

care variabila flag? parca foloseam 'strict'
Nu am experiență reală în Javascript așa că nu am știut ce face "use strict" sau că este suficient de important încât să îl caut pe google.

#27
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,295
  • Înscris: 10.08.2005

View PostGeorge02, on 28 noiembrie 2019 - 00:26, said:

Deci problema nu are solutie?
nu la modul cum ai exrimat-o tu, ca site-ul n-are nici un enunt

Edited by MarianG, 28 November 2019 - 06:16.


#28
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,295
  • Înscris: 10.08.2005
Attached File  solution.png   49.35K   40 downloads

#29
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011
Deci ce nu am înțeles eu bine? Care este răspunsul?

#30
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,295
  • Înscris: 10.08.2005
nu ai inteles cerinta, iar asta e parte din provocare

View PostGeorge02, on 28 noiembrie 2019 - 08:59, said:

Care este răspunsul?
raspunsul este ca trebuie sa inveti Javascript
<script>
"use strict";
let q="";const Q=_=>btoa(q.split('').reverse().join(''))=='cXRmaWhTRFJhdGZpaFN'+ 'GMHFo'&&(flag=`${q}`);window.onkeyup=e=>Q(q=((q+e.key).slice(-0o22)));
</script>
daca nu intelegi ce se intampla aici raspunsul nu te ajuta la nimic,
bine, doar o sa ai niste puncte pe un site, egal cu zero

View PostGeorge02, on 27 noiembrie 2019 - 23:56, said:

Partea asta 'cXRmaWhTRFJhdGZpaFN'+'GMHFo' && (flag=`${q}`); inlocuind q cu "ceva" se evalueaza la "ceva". "ceva" trebuie sa fie == cu btoa("ceva".split('').reverse().join('')).
te-ai uitat sa vezi ce rezulta din "concatenarea" asta ?

#31
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011
"a" concatenat cu "b" => "ab"

#32
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,295
  • Înscris: 10.08.2005
"a" concatenat cu "b" => "ab", destul de corect, dar
'a' + 'b' =  ?

#33
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011
"The + operator does string concatenation as soon as one of its operands is a string. Then the other operand is converted to string."

Aaa

#34
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011
<script>
	 "use strict";
	 var q = 'cXRmaWhTRFJhdGZpaFN'+ 'GMHFo';
	 console.log(q);
	 console.log(typeof(q));
</script>

[ https://i.ibb.co/K2Nrk9m/console.png - Pentru incarcare in pagina (embed) Click aici ]

Care-i treaba ca nu inteleg? Prima oara am crezut ca datorita faptului ca sirul de caractere este cuprins intre apostroafe comportamentul concatenarii ar putea fi diferit. Dar pare ca nu e asa.

Edited by George02, 28 November 2019 - 17:06.


#35
tavitu

tavitu

    Minune: HE a început să emită facturile!

  • Grup: Senior Members
  • Posts: 5,598
  • Înscris: 16.02.2009
Asta
btoa(q.split('').reverse().join('')) == 'cXRmaWhTRFJhdGZpaFN' + 'GMHFo'
După concatenare devine:
btoa(q.split('').reverse().join('')) == 'cXRmaWhTRFJhdGZpaFNGMHFo'
Înțelegi ce se întâmplă acolo?

Edited by tavitu, 28 November 2019 - 17:19.


#36
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011

View Posttavitu, on 28 noiembrie 2019 - 17:18, said:

Asta
btoa(q.split('').reverse().join('')) == 'cXRmaWhTRFJhdGZpaFN' + 'GMHFo'
După concatenare devine:
btoa(q.split('').reverse().join('')) == 'cXRmaWhTRFJhdGZpaFNGMHFo'
Înțelegi ce se întâmplă acolo?

Mda. A fost derutanta treaba cu && (flag=`${q}`); Nici nu m-am mai uitat la prima parte.
Mersi de ajutor!

Anunturi

Chirurgia cranio-cerebrală minim invazivă Chirurgia cranio-cerebrală minim invazivă

Tehnicile minim invazive impun utilizarea unei tehnologii ultramoderne.

Endoscoapele operatorii de diverse tipuri, microscopul operator dedicat, neuronavigația, neuroelectrofiziologia, tehnicile avansate de anestezie, chirurgia cu pacientul treaz reprezintă armamentarium fără de care neurochirurgia prin "gaura cheii" nu ar fi posibilă. Folosind tehnicile de mai sus, tratăm un spectru larg de patologii cranio-cerebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate