Oprettet tor. d. 28. maj 2009 kl. 14:24:06

flodhesten
flodhesten (13.705 point. Point ude: 550)

Tekst til tal og tilbage igen

Hej.

Jeg har en tekst "test". Findes der et script eller noget, så jeg kan få "test" udtryk ved tal? Så eventuelt: "test" -> "32487204".

Det er nok ikke lige talden værdi som test vil få.

Og kan man så gå omvendt igen. Altså nu har jeg talmængden "32487204". Nu vil jeg gerne have det oprindelige "test" tilbage igen.

Man kan vel kalde det en slags kryptering, udover sikkerhed er ligegyldigt. Jeg skal bare have tal i stedet for tekst.

Nogen der har en simpel løsning?

Skrevet tor. d. 28. maj 2009 kl. 14:29:14| #1

jakobdo
jakobdo (181.727 point)
www.codebreaker.dk
Hvis du udtrykker alle tals værdi i alfabettet, så f.eks.:

a = 01
b = 02
c = 03
osv...
2 tal er nødvendig, da 12 ikke er til at sige om det så er ab eller l
hvor ab = 0102 og l = 12

Skrevet tor. d. 28. maj 2009 kl. 14:38:42| #2

flodhesten
flodhesten (13.705 point)
Hmm...

har overvejet at give hver bogstav en værdi. Men det kan måske godt give lidt problemer når jeg skal tilbage igen? Så skal der jo være en slags seperator. 0105295392 - Den eneste måde at kunne læse den talkode skulle så være fordi computeren ved, at hvert bogstav består af to talværdier. Jeg tvivler på, at det er holdbart til min løsning. Desuden er 99 muligheder heller ikek nok, hvis både store og små bogstaver, samt tal og specieltegn skal have en værdi.

Ellers skal der være en anden seperator såsom:

010-529-539-342

Men det ødelægger netop det, at mit output udelukkende må bestå af tal.

Skrevet tor. d. 28. maj 2009 kl. 14:51:15| #3

PHP har masser af smarte funktioner, så med lidt fantasi kunne man da hurtigt forestille sig noget ala

<?php
    $str = "Hej med dig";
   
    $jumper = 33;
   
    $singles = str_split($str);
    $enc = "";
    foreach($singles as $value)
    {   
        $encNo = ord($value) + $jumper;
        $enc .= sprintf("%03s", $encNo);
    }

    // Giver dig en streng med tal
    echo $enc;
   
    $chr = str_split($enc, 3);
    $theString = "";
    foreach($chr as $value)
    {   
        $charNo = (int)$value - $jumper;
        $theString .= chr($charNo);
    }
   
    // Giver dig den dekrypterede streng
    echo $theString;
?>

utestet, men du får forhåbentlig idéen...

Skrevet tor. d. 28. maj 2009 kl. 14:59:33| #4

Hvorfor må det kun være tal? Den betingelse lyder ret underlig.

Skrevet tor. d. 28. maj 2009 kl. 15:03:28| #5

flodhesten
flodhesten (13.705 point)
Det er fordi jeg er ved at lave et Krypteringsscript som bygger på RSA. Og krypteringen foregår med tal. Derfor skal jeg have lavet min klartekst om til tal, før jeg kan begynde at kryptere denne. Og det skal derfor også være muligt at gå tilbage fra tal til bogstaver. Man skal nok forstå RSA-princippet, for at det giver mening.

Ivørigt ser det meget lovnde ud repox. Jeg kigger lige nærmere på det.

Skrevet tor. d. 28. maj 2009 kl. 15:29:02| #6

jakobdo
jakobdo (181.727 point)
www.codebreaker.dk
Hvis du begynder at smide - imellem, så kan du vel ligeså godt bruge a,b,c osv.. ?
Så a kunne jo laves til 001, b = 002 osv...
ab vil så være = 001002
Og du vil vel aldrig sidde og læse disse værdier selv, men altid maskinelt formoder jeg.
Så en seperator er vel lige meget.

Skrevet tor. d. 28. maj 2009 kl. 15:37:33| #7

flodhesten
flodhesten (13.705 point)
jakobdo.

Problemet er, at i krypteringen vil "001002003004" blive læst som "1002", hvilket jo også er en meget naturlig måde at læse tal på, og det vil have en altafgørende betydning. Når man dekrypterer den hemmelige kode, vil man kun få "100203004" og så læser computeren det pludselig som 100, 203, 004. Det er derfor ikke holdbart.

Her er for eksempel hvad "Hej med dig, Børge!" blev til, når talkoden starter med 0:
»õ&+Eõê+ë¢*€Ëw ô!

... og så er dekrypteringen vist ikke helt vellykket.

Jeg har dog også et problem med at en talkode kan starte med 0 i repox script, men her tror jeg det kan løses ved at ændre på "jumperen".

Skrevet tor. d. 28. maj 2009 kl. 15:38:14| #8


Skrevet tor. d. 28. maj 2009 kl. 15:38:17| #9

flodhesten
flodhesten (13.705 point)
Rettelse: "001002003004" vil blive læst som "1002003004"

Skrevet tor. d. 28. maj 2009 kl. 15:38:40| #10

Hmmm, det lyder som om at du er lidt længere ude end du kan bunde.

Anyway, eftersom du i en tal-variabel kun kan gemme relativt små tal så duer det ikke at prøve på at oversætte en streng til et tal, det kan ikke være i en enkelt variabel. Det du kan gøre er at oversætte hvert enkelt tegn til et tal (fx vha. ord() funktionen som repox også nævner, chr() virker den anden vej), gemme de tal i et array, og behandle arrayet som et 256-decimalt tal.

Skrevet tor. d. 28. maj 2009 kl. 15:41:34| #11

flodhesten
flodhesten (13.705 point)
ebusiness -> Måske netop derfor jeg spørger pænt om hjælp.

Skrevet tor. d. 28. maj 2009 kl. 15:49:16| #12

Nu spørger jeg nok lidt fjollet, men er du ude på at ramme noget i forbindelse med Diffie-Hellman key exchange? For så skal du jo også koncentrere dig om mange andre ting end blot det med de tal.

Skrevet tor. d. 28. maj 2009 kl. 16:01:10| #13

flodhesten
flodhesten (13.705 point)
Jeg har ikke hørt om lige præcis "Diffie-Hellman key exchange", men umiddelbart når slår det op og læser om det, beskriver det meget godt det jeg har gang i. Men det er altså et Public-key cryptography script jeg er ved at lave (Som bygger på RSA-kryptering med offentlig og hemmelig nøgle). Selve krypteringsscriptet har jeg styr på, og det eneste jeg mangler er sådan set det jeg har efterspurgt her. Men hvis nogen skulle være interesseret i hele mit system, så kan jeg godt lægge hele koden op.

Og jeg har egentlig haft meget held med at implementere dit script, repox. Så det vil nok være meget refærdigt at give dig point.

Skrevet tor. d. 28. maj 2009 kl. 16:04:24| #14

flodhesten
flodhesten (13.705 point)
Forresten, jakobdo. Jeg kan ikke rigtig se noget på den side du henviser til?

Skrevet tor. d. 28. maj 2009 kl. 16:07:34| #15

Jamen, hvis du har opnået det du skulle, så er jeg tilfreds.

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Brugerliste med link til profil

Oprettet den 26. maj 2012 kl. 14.29
sayn giver 30 point for svar | Giv et svar »

php curl driller

Oprettet den 26. maj 2012 kl. 08.31
PHPnQrd giver 200 point for svar | Giv et svar »

Array i array

Oprettet den 25. maj 2012 kl. 08.32
sebster giver 60 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger