Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Bolojan la presedintie?

Huawei band 8

Statii de benzina DHR

Windows XP Volume License
 Noul degresant universal

Imaginea nu poate fi redata - Ero...

"Mafiotii" revin in forta...

Branșament gaze 2024 sau pom...
 Lamurire bec led h7

Preturi momeala ? (dar care e sme...

Realizare tavan fals rigips

Alternative pod Giurgiu - Ruse
 Cat spatiu stocare aveti in total...

Reflux

Centrale termice compacte

Portofoliu incepator pe Bursa New...
 

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,153
  • Î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,444
  • Î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,553
  • Î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,256
  • Î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,444
  • Î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,553
  • Î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,444
  • Î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,553
  • Î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

Neurochirurgie minim invazivă Neurochirurgie minim invazivă

"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv.

Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice.

www.neurohope.ro

1 user(s) are reading this topic

0 members, 1 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