Avatar billede davidfossil Nybegynder
21. september 2005 - 18:34 Der er 7 kommentarer og
1 løsning

Kortest mulige krypteringsresultat

Nogen der er klar over om der er forskel på hvor langt output de forskellige kryperingsalgoritmer i .NET spytter ud? Altså hvis jeg har 10 bytes som jeg gerne vil have krypteret, men vil have så småt et output som overhovedet muligt - hvilken algoritme skal jeg så vælge? Selve sikkerheden er temmelig underordnet, bare min data bliver rusket en lille smule til uigenkendelighed...
Avatar billede pfp Nybegynder
21. september 2005 - 18:40 #1
Cæsar...men det er måske lige usikkert nok :)
Avatar billede arne_v Ekspert
21. september 2005 - 19:00 #2
de fleste moderne algoritmer er blok baserede d.v.s. oprunder til
multipla af typisk 8

Cæsar eller lidt bedre Vigenere kan holde det på samme størrelse som input.
Avatar billede davidfossil Nybegynder
21. september 2005 - 19:23 #3
Findes disse i .NET frameworket, eller kan de tilføjes/implementeres let?
Avatar billede arne_v Ekspert
21. september 2005 - 19:28 #4
de kan kodes i 3 linier
Avatar billede arne_v Ekspert
23. september 2005 - 23:33 #5
using System;
using System.Text;

namespace E
{
    public class Caesar
    {
        public static byte[] Encrypt(string s, int off)
        {
            byte[] res = new byte[s.Length];
            for(int i = 0; i < s.Length; i++) res[i] = (byte)(s[i] + off);
            return res;
        }
        public static string Decrypt(byte[] b, int off)
        {
            StringBuilder res = new StringBuilder();
            for(int i = 0; i < b.Length; i++) res.Append((char)(b[i] - off));
            return res.ToString();
        }
    }
    class MainClass
    {
        public static void Main(string[] args)
        {
            Console.WriteLine(Caesar.Decrypt(Caesar.Encrypt("Dette er en test", 5), 5));
        }
    }
}
Avatar billede arne_v Ekspert
23. september 2005 - 23:33 #6
using System;
using System.Text;

namespace E
{
    public class Vigenere
    {
        public static byte[] Encrypt(string s, string key)
        {
            byte[] res = new byte[s.Length];
            for(int i = 0; i < s.Length; i++) res[i] = (byte)(s[i] + (int)key[i%key.Length]);
            return res;
        }
        public static string Decrypt(byte[] b, string key)
        {
            StringBuilder res = new StringBuilder();
            for(int i = 0; i < b.Length; i++) res.Append((char)(b[i] - (int)key[i%key.Length]));
            return res.ToString();
        }
    }
    class MainClass
    {
        public static void Main(string[] args)
        {
            Console.WriteLine(Vigenere.Decrypt(Vigenere.Encrypt("Dette er en test", "kode"), "kode"));
        }
    }
}
Avatar billede davidfossil Nybegynder
24. september 2005 - 18:03 #7
Super, jeg tror det rækker til mit behov.
Svar tak :)
Avatar billede arne_v Ekspert
24. september 2005 - 18:07 #8
svar
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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

IT-JOB

Nextway Software A/S

Software Architect

Netcompany A/S

IT Consultant

IT-Universitetet i København

CIO

LINK Mobility

Support Specialist