Avatar billede christofferhped Nybegynder
23. august 2007 - 11:37 Der er 9 kommentarer

Tekst til Binær

Hej alle.

Hvordan skal jeg gøre hvis jeg gerne vil konvertere en karakter, skal kunne være hvilken som helst karakter til dens binære form?
Avatar billede nielle Nybegynder
23. august 2007 - 11:59 #1
Et tegns værdi afhænger af hvilken encoding vi snakker om?
Avatar billede christofferhped Nybegynder
23. august 2007 - 12:03 #2
Forestil dig at mit program skal encryptere et docx dokument fx, dette forestiller jeg mig foregår ved at bruge hvert eneste tegn i dette dokuements binære værdi med en matematisk funktion jeg har en tankerne (ret irrelevant lige nu, da jeg bare skal vide hvordan jeg får binære værdier for karakterene som vi ser på skærmen).

Jeg kunne forestille mig at vi snakkede ascii til binær, men dækker ascii over alle tegn? Gør det vist ikke så det skal vel være en anden enkodning.
Avatar billede nielle Nybegynder
23. august 2007 - 12:06 #3
ASCII dækker kun over ialt 128 tegn.

Hvis du skal kryptere et dokument behøver du imidlertid slet ikke tænke i tegn - læs dokumentet som en byte-stream og krypter den.
Avatar billede christofferhped Nybegynder
23. august 2007 - 12:09 #4
Den type kryptering jeg godt kunne tænke mig at lave foregår på et binært niveau, XOR nemlig. Hvis får den binære værdi for de tegn jeg vil kryptere og for min key kan jeg sætte dem op mod hinanden i en XOR, efter som jeg bare betragter 1 som true og 0 som false i en XOR.
Avatar billede nielle Nybegynder
23. august 2007 - 12:33 #5
Som sagt kan du åbne en fil (f.eks. et docx-dokument) direkte som som en binær stream. Du behøver ikke tænke i tegn først.

Al ære og respekt for at du vil lave din egen kryptereing, men hvorfor ikke bruge en af de forskellige krypterings-mekanismer som allerede er understøttet i .Net frameworket.

Endeligt, hvis man f.eks. vil have de binære væredier for en UTF-8 encodet streng så gøres det sådan:

            string tekst = "Hvordan skal jeg gøre hvis jeg gerne vil konvertere en karakter, skal kunne være hvilken som helst karakter til dens binære form?";

            byte[] textArr = Encoding.UTF8.GetBytes(tekst);

            for (int byteNo = 0; byteNo < textArr.Length; byteNo++)
                Console.Write(textArr[byteNo] + " ");
            Console.WriteLine();
Avatar billede arne_v Ekspert
23. august 2007 - 12:42 #6
Strengt taget giver tekst versus binaer kun mening for tal.

Char er ikke mindre eller mere binaer end byte.

Du kan sagtens caste en char til en int og lave matematiske operationer paa den.

Af praktiske aarsager laver man altid kryptering paa bytes og ikke chars.
Avatar billede christofferhped Nybegynder
23. august 2007 - 12:58 #7
Perfekt. Jeg arbejder videre her fra og vender tilbage med resultaterne.
Avatar billede nielle Nybegynder
03. september 2007 - 14:00 #8
Har du fået kigget på det?
Avatar billede christofferhped Nybegynder
03. september 2007 - 14:20 #9
Ja, er ikke blevet færdigt med noget endnu, har sat det lidt "on-hold". Skal nok vende tilbage med points hvis det bliver aktuelt.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester