16. maj 2005 - 15:37
Der er
14 kommentarer og 1 løsning
Kryptering med AES!
Hej jeg har følgende spørgsmål, jeg har noget som jeg gerne vil have krypteret og dekrypteret igen, men jeg får en fejl ud fra den kode som er fundet på codeproject.com 9VOMae3BptSi/KUzMH/4Dg== Denne linje kan ikke dekrypteres Har prøvet med forskellige andre, menjeg kan ikke se hvad forskellen er på denne og nogle af mine andre strengen, jeg sender koden til dekryptering og kryptering__ private static string EncryptText(string clearText, string Password) { byte[] clearBytes = System.Text.Encoding.Unicode.GetBytes(clearText); //Dan nøgle og initialiseringsvektor ud fra medsendte password PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] {0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76}); // Åben memorystream MemoryStream ms = new MemoryStream(); // Dan symmetrisk algoritme og sæt key og initialiseringsvektor Rijndael alg = Rijndael.Create(); alg.Key = pdb.GetBytes(32); alg.IV = pdb.GetBytes(16); // Dan krypteret stream via memorystream CryptoStream cs = new CryptoStream(ms, alg.CreateEncryptor(), CryptoStreamMode.Write); cs.Write(clearBytes, 0, clearBytes.Length); cs.Close(); // Hent of returner den krypterede data fra memorystream byte[] encryptedData = ms.ToArray(); return Convert.ToBase64String(encryptedData); } private static string DecryptText(string cipherText, string Password) { if (cipherText.Length == 0) return ""; byte[] cipherBytes = Convert.FromBase64String(cipherText); PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] {0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76}); MemoryStream ms = new MemoryStream(); Rijndael alg = Rijndael.Create(); alg.Key = pdb.GetBytes(32); alg.IV = pdb.GetBytes(16); CryptoStream cs = new CryptoStream(ms, alg.CreateDecryptor(), CryptoStreamMode.Write); cs.Write(cipherBytes, 0, cipherBytes.Length); cs.Close(); byte[] decryptedData = ms.ToArray(); return System.Text.Encoding.Unicode.GetString(decryptedData); }
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
hvilken fejl får du ? (jeg har et AES eksempel som virke)
Fejlen ligger i disse linjer, jeg får følgende exception byte[] cipherBytes = Convert.FromBase64String(cipherText); PasswordDeriveBytes pdb = new PasswordDeriveBytes(Password, new byte[] {0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76}); String reference not set to an instance of a String.\r\nParameter name: s
er Password forskellig fra null ?
Nu får jeg en anden fejl, når jeg husker at sende et password med strengen ser således ud, 9VOMae3BptSi/KUzMH/4Dg==\0 Password er: zerxjyspjdzojmzmxzjacjxznvxqeqcunmocwnmthmipqwjaxlauhwfpgsknablt Min exception ligger på linjen: byte[] cipherBytes = Convert.FromBase64String(cipherText); Gir : Invalid character in a Base-64 string.
Det er hermed gjort, fejlen rykker sig længere og længere ned i koden cs.Close(); Padding is invalid and can not be removed.
se den kan jeg så ikke lige gennemskue er du sikker på at du kalder med det input som er output fra encrypt ?
jeg prøver lige nogle ting, vender tilbage senere
jeg kan simpelthen ikke forstår hvorfor den fejler der, når den skal lukke for streamen
hvorfor bruger du iøvrigt stream ? det er jo ikke nødvendigt til så små datamængder !
nu tror jeg at jeg fandt den, så send du bare et svar, du skal have dine point for at have hjulpet mig på vej
jeg skal kryptere filer også, så mængden bliver størrer og størrer
Et lille tillægsspørgsmål, hvordan får jeg fat i ip adressen uden port nummer. Jeg har følgende client.Sock.RemoteEndPoint.ToString() så får jeg ip og port, Jeg vil gerne undgå porten!
Prøv: ((IPEndPoint)client.Sock.RemoteEndPoint).Address ikke så pænt men ...
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.