08. december 2004 - 17:05Der er
17 kommentarer og 1 løsning
Hvordan virker TripleDESCryptoServiceProvider ?
Hej. Jeg er ved at finde ud af, hvordan jeg kan krypter en streng med TripleDES. Jeg har et problem med "nøglen". Jeg går ud fra at GenerateKey() metoden selv laver en nøgle.
1) Hvis jeg selv vil bestemme nøglen, hvad skal jeg så gøre? 2) Hvad gør denne metode: GenerateIV() ?
OK, det virker nu, jeg kan krypter og dekrypter i samme applikation. Mit problem er at jeg gerne vil krypter en streng med en nøgle og så i en anden applikation (lavet i delphi), dekrypter med samme nøgle? Men vil 2 forskellige TripleDES algoritmer "arbejde sammen" ?
Jeg har prøvet Mange muligheder, men ingen virker. Et problem er byte[] iv, I de delphi algoritmer jeg har set er det kun nøglen der sættes. Hvad bruges byte[] iv til?
Er det en mulighed at lave en dll i delphi med krypterings algoritmen og så dllimport i asp.net. Problemet er at så skal jeg sende nøglen med som parameter til en metode i dll. Det er vel usikkert?
The value IV is used to store an Initialization Vector, which is used to make it a little more complicated to break the encryption. The IV is added to the plaintext block to be encrypted using CBC making it slightly harder to crack.
Nu prøver jeg at kalde en dll i c#. Jeg får følgende fejl: System.Runtime.InteropServices.MarshalDirectiveException: Can not marshal parameter #2: The type definition of this type has no layout information.
Sådan ser metoden ud i dll (lavet i delphi) procedure Enc(aInStream, aOutStream: TStream; const APassphrase: ShortString); stdcall;
Jeg prøver at kalde med dette [System.Runtime.InteropServices.DllImport("test.dll")] private static extern int AESEncrypt(StreamReader inStream, StreamWriter outStream, string key);
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.