haagelMedlem sedan feb. 2006134 inlägg Hej!
Jag håller på att experimentera lite med kryptering. Jag testar nu kod som jag hittat hos på MSDN:
http://msdn2.microsoft.com/en-us/library/system.security.cryptography.descryptoserviceprovider.aspx
Detta tycks fungera bra, men det är ju enkelt så länge allt sker på samma sida. Jag vill ju skicka krypterad data till en annan sida (eller i mitt fall en webbservice) och där dekryptera den. Men jag måste väl ha samma nyckel? Hur gör jag så att den andra sidan/applikationen får en likadan nyckel? Om jag bara skapar en på samma sätt som i koden i länken ovan så blir den ju inte likadan (och tur är väl det, annars vore krypteringen ganska värdelös).
tydalMedlem sedan juni 20034 013 inlägg Du använder en algoritm med public/private key för att överföra nyckeln, förslagsvis RSA.
haagelMedlem sedan feb. 2006134 inlägg Jag ska alltså kryptera nyckeln och skicka den? Är det isåfall inte smidigare att kryptera min ursprunliga data med public/private key? Eller har jag missförstått?
Hur som helst vill jag göra detta på enklast möjliga vis. Finns det inte något sätt att bestämma hur nyckeln ska se ut, som att skapa nyckeln utifrån en textsträng eller liknande? Då kan jag ju skapa likadana nycklar på båda sidorna...
tydalMedlem sedan juni 20034 013 inlägg Ska du ha enklast möjliga vis är nog inte kryptering rätt val :-)
Men allt beror ju på vad man har för krav. RSA är väldigt långsam och därför använder man den normalt inte för några större datamängder. DES är snabb, men då har du problemet med att du måste överföra nyckeln på något sätt.
Du kan ju bestämma dig för en nyckel som du hårdkodar på båda ställena, men det är ju inte bra.
haagelMedlem sedan feb. 2006134 inlägg Jag får väl helt enkelt skriva en algoritm som kodar om min textdata med sjörövarspråket. ;)
Det ända jag vill göra är att på lättaste sätt kryptera ett användarnamn och ett lösenord. Detta skickas sedan till en webbtjänst där det dekrypteras och används för att se om användaren har rättigheter att använda webbtjänsten (kontrollerar mot en databas).
Jag inbillar mig att det är lättast att ha en hårdkodad nyckel på båda sidor som är identiskt (även om det tydligen inte är någon bra lösning). Men jag kan inte hitta något sätt att skapa en sådan nyckel.
andguMedlem sedan okt. 20069 inlägg En varient är att du lagrar lösenorden hashade mha tex MD5 i en databas. När användare loggar in skapar du en MD5 checksumma av det inmatade lösenordet och skickar det till din webservice, den jämför sedan med värdet i databasen - är de lika är allt ok.
På det viset slipper du lagra lösenord i klartext och du behöver inteanvända nycklar.
Men allt beror ju lite på vad du har för krav på säkerhet.
hopparnMedlem sedan nov. 20011 551 inlägg varför inte använda:
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(Request.QueryString["ID"].ToString());
String cookieStr = FormsAuthentication.Encrypt(ticket);