Avatar billede driis Nybegynder
29. december 2004 - 18:34 Der er 3 kommentarer og
1 løsning

CryptoStream problem

Jeg har følgende metode, som skal bruge en ICryptoTransform til at kryptere et byte array og returnere de krypterede bytes:

private byte [] TransformByteArray(ICryptoTransform ict, byte [] input)
{
    // ensure valid input
    Assert.NotNull(ict,"ict");
    Assert.NotNull(input,"input");
    int size = input.Length;
    // create streams and perform transformation           
    MemoryStream outStream = new MemoryStream(size);
    CryptoStream cs = new CryptoStream(outStream,ict,CryptoStreamMode.Write);
    cs.Write(input,0,size);
    cs.Close();
    byte [] output = new byte[size];
    outStream.Read(output,0,size);
    // cleanup
    ict.Dispose();
    return output;
}

Jeg har dog et problem, der bliver ikke skrevet noget til output array'et i linien:
outStream.Read(output,0,size);

Er det forkert forstået, at jeg laver en cryptostream med en underliggende stream, (her en MemoryStream) og derefter skriver dataene til CryptoStream'en ?

Jeg har taget udgangspunkt i flg. eksempel:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemsecuritycryptographytripledesclasstopic.asp
Avatar billede arne_v Ekspert
29. december 2004 - 19:24 #1
Prøv at erstatte

outStream.Read(output,0,size);

med

output = outStream.ToArray();
Avatar billede arne_v Ekspert
29. december 2004 - 19:26 #2
Prøv også at hente ud af output inden du kalder cs.Close
Avatar billede driis Nybegynder
29. december 2004 - 21:51 #3
outStream.ToArray() virker, når jeg samtidig venter med cs.Close
outStream.Read fungerer i øvrigt også hvis man husker at sætte outStream.Position = 0 før man læser, fandt jeg ud af. Tak for hjælpen, læg et svar.
Avatar billede arne_v Ekspert
29. december 2004 - 21:58 #4
ok
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