Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Ce e aratarea asta ?

Probleme timonerie schimbator sau...

Numar strada gresit in contractul...

Centrala Ariston Cares Premium 24...
 La multi ani @Klasse!

La multi ani @shmecherul!

pareri ipad 6-2018- flip

Cum au aparut supermarketurile in...
 Campanii mincinoase Carrefour

Tv toshiba defect

touchscreen navigatie stricat

bonsai - de unde?
 Resetare Bonus Malus

Unitatea optica DVD-rw absenta pe...

Problema configurare Wireguard

Dozatoare de apa, cu alimentare d...
 

conversie base64 challange

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

#1
George02

George02

    Member

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

De cateva zile ma tot chinui sa rezolv o problema si tot nu reusesc sa ii dau de cap.

Enuntul este cam asa din cate am inteles eu: Gasiti un cuvant (cu o dimensiune mai mic sau egala cu 18 caractere) care inversat si convertit in baza 64 sa fie egal cu el insusi.

Ce am incercat:
- m-am documentat legat de modul de reprezentare a informatiilor in calculator
    - avem caracterele din tabelul ascii (utf-8 sa zicem) 8 biti => 1 byte
- m-am documentat legat de baza64 si modul de reprezentare
    - avem caracterele [A-Za-z0-9+/] 6 biti
- mi-am facut o pagina html care sa imi faca conversii (atasata in atasamente)

Problema este luata de pe site-ul https://rough.ro/challenges
Web
    └── First Script (20)

Attached Files



#2
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009
Problema este ca in ASCII exista caractere care nu le poti transimte prin URI (Uniform Resource Identifier). Cand faci un request la server ai o anumita sintaxa: tipul protoculului (http, https, ftp, file, data) :// +  host (local host, adresa IP, numele site-ului) + port + cale + query + identificator de fragment):
https://en.wikipedia...fier#Definition

Nu poti transmite orice caractere prin URI: https://en.wikipedia..._URI_characters

Daca tu vrei sa trimiti un fisier text prin XMLHttpRequest, dar acel text are spatii, linii noi, caractere speciale - nu il poti trimite si trebuie sa il transformi in text exact cum ai face un request in URI - https://en.wikipedia...ercent-encoding

Transformi tot textul intr-un alt text care nu contine spatii, carriage return, new line, etc.
Un exemplu ai aici - https://en.wikipedia.org/wiki/Base64:

TEXTUL IN ASCII:
Man is distinguished, not only by his reason, but by this singular passion from other animals,
which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable
generation of knowledge, exceeds the short vehemence of any carnal pleasure.


TEXTUL CONVERTIT IN BASE64:
TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz
IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg
dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu
dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo
ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=

Edited by PlatonX, 27 November 2019 - 08:43.


#3
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011
Și cum răspunde ceea ce ai spus tu la întrebarea:

Care este cuvantul (de maxim 18 caractere) care inversat si convertit in baza 64 sa fie egal cu el insusi?

#4
PlatonX

PlatonX

    Senior Member

  • Grup: Senior Members
  • Posts: 5,741
  • Înscris: 13.09.2009

 George02, on 27 noiembrie 2019 - 02:28, said:

- m-am documentat legat de baza64 si modul de reprezentare
- avem caracterele [A-Za-z0-9+/] 6 biti
Era o clarificare la asta. Inainte de a rezolva problema, este imporant sa intelegi ce inseamna base64 si la ce se foloseste.

Edited by PlatonX, 27 November 2019 - 10:06.


#5
Alice

Alice

    Big Boobs

  • Grup: Senior Members
  • Posts: 7,146
  • Înscris: 05.12.2002
Unde este enuntul problemei? Probabil nu ai inteles bine.

Eu am inteles asa:

Cuvant initial - CUVANT
Cuvant inversat - TNAVUC
Cuvant inversat (TNAVUC) convertit in base64 (VE5BVlVD) sa fie egal cu CUVANT? Este imposibil.

Edited by Alice, 27 November 2019 - 10:55.


#6
keta

keta

    Guru Member

  • Grup: Senior Members
  • Posts: 10,834
  • Înscris: 31.12.2007
RADAR
CAPAC
SUPUS
etc...
Nu ar merge astfel de cuvinte ?

Edited by keta, 27 November 2019 - 11:52.


#7
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,302
  • Înscris: 06.01.2007
Conform Wikipedia, codificarea in BASE64 contine mai multe litere, 3 caractere sunt convertite in 4.
Asadar un string inversat si convertit are mai multe litere decat originaul, deci nu are cum sa fie egal.

Poate-mi scapa mie ceva sau vreo situatie particulara in care se omite catracterul de paddng "=", dar solutia trebuie sa aiba in vedere acest aspect.

#8
Webbbob

Webbbob

    Member

  • Grup: Members
  • Posts: 637
  • Înscris: 22.03.2019
ce problema stupida, ala care a compus enuntu sigur e un frustrat care nu si-a gasit locu

#9
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
base64(reverse(text))=text?
asta se vrea?

Edited by MarianG, 27 November 2019 - 13:55.


#10
pexCom

pexCom

    Senior Member

  • Grup: Senior Members
  • Posts: 2,245
  • Înscris: 15.01.2014
Și eu am înțeles la fel. Dar tot e ilogic pentru că base 64 convertește fiecare 3 caractere în 4 caractere, cum a zis și maccip.

#11
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011
Da MarianG. Aia se vrea.

 MarianG, on 27 noiembrie 2019 - 13:54, said:

base64(reverse(text))=text?
asta se vrea?

Da.

#12
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,302
  • Înscris: 06.01.2007

 MarianG, on 27 noiembrie 2019 - 13:54, said:

base64(reverse(text))=text?
asta se vrea?
Daca-i doar atat, solutia e "", doar ca nu e un cuvant.
Cuvantul e cuvant, stringul e string in acest context din ce bag seama.

Oricum, problema pare stupida.

#13
MarianG

MarianG

    be that as it may

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

 George02, on 27 noiembrie 2019 - 02:28, said:

Enuntul este cam asa din cate am inteles eu:
site-ul ala nu ofera nici un enunt; trebuie sa dau register ?

ok, nu se vrea ce ceri tu
este o alta problema cu 'textul criptat'

Edited by MarianG, 27 November 2019 - 17:41.


#14
George02

George02

    Member

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

 maccip, on 27 noiembrie 2019 - 15:18, said:


Daca-i doar atat, solutia e "", doar ca nu e un cuvant.
Cuvantul e cuvant, stringul e string in acest context din ce bag seama.

Oricum, problema pare stupida.

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?

#15
maccip

maccip

    46 ani

  • Grup: Senior Members
  • Posts: 33,302
  • Înscris: 06.01.2007
Solutia e sirul nul,
Daca gasesti tu o solutie mai putin stupida, te rog frumos s-o pui aici.

#16
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,477
  • Înscris: 10.08.2005
btoa(q.split('').reverse().join(''))==....
textul criprat il avem

#17
George02

George02

    Member

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

 maccip, on 27 noiembrie 2019 - 15:18, said:


Daca-i doar atat, solutia e "", doar ca nu e un cuvant.
Cuvantul e cuvant, stringul e string in acest context din ce bag seama.

Oricum, problema pare stupida.

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?

#18
George02

George02

    Member

  • Grup: Members
  • Posts: 356
  • Înscris: 09.01.2011
Am zis sa filtrez putin problema dar poate nu am reusit eu sa o explic cum trebuie. Uitati, aceasta este:
<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>

Intrebarea care se pune este ce valoare ar trebui sa aiba variabila "flag" astfel incat functia Q sa intoarca true.

Edited by MarianG, 28 November 2019 - 18:38.
codes


Anunturi

Bun venit pe Forumul Softpedia!

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