Anonymní profil C# zacatecnik – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil C# zacatecnik – Programujte.comAnonymní profil C# zacatecnik – Programujte.com

 

Příspěvky odeslané z IP adresy 88.146.220.–

C# zacatecnik
.NET › Pomoc s sifrovani RSA
4. 1. 2010   #122260

To Krychlik :
Ja vim :-) ten Privatkey se stejne jeste zmeni :-) tohle mel byt testovaci klic...potrebuju ale poradit

C# zacatecnik
.NET › Pomoc s sifrovani RSA
4. 1. 2010   #122257

Ahoj, muze mi prosim nekdo poradit se sifrovanim pomoci RSA ?
Resim nasledujici prakticky problem v jednom webshopu.

1) Externi webova aplikace umoznuje pouhym kliknutim, aby se jeji uzivatel automaticky prihlasil do naseho webshopu
2) automaticke prihlaseni je reseno tak, ze uzivatel proste klikne na link, ktery vypada takto:
http://shop.mailshop.de/optiswiss.ch?osauth=1163854957283A1188831830629A598183454357A311881334577A863719981620A1136485370090A

3) obsah promenne osauth je cislo zakaznika a datum....po rozsifrovani vypada takto:
03.09.2009 14:11:09#080999

4) mam napsany nize uvedeny kod, kterym se pokousim rozsifrovat ten obsah promenne osauth, ale nedari se mi to.
Definici pro public key, private key a rsa modulu jsem dostal od majitele externi webove aplikace, ktery je vygeneroval pro muj ucel.
Pro rozsifrovani mi ale prece staci PRIVET KEY ze ?

5) muj problem je ve funkci RSADecrypt na radce RSA.ImportParameters(RSAKeyInfo);...tady mi to hazi chybu "CrypthographicException -> Bad Length. "

Pomozte mi prosim nekdo


zde je zdrojovy kod a definice

Public-Key: 1207919
Private-Key: 285642214367
RSA-Modulo: 1290114063053


RSAParameters RSAKeyInfo = new RSAParameters();
RSAKeyInfo.Modulus = BitConverter.GetBytes(1290114063053);
RSAKeyInfo.Exponent = BitConverter.GetBytes(1207919);
RSAKeyInfo.D = BitConverter.GetBytes(285642214367);

string text = @"1163854957283A1188831830629A598183454357A311881334577A863719981620A1136485370090A";
ASCIIEncoding encoding=new ASCIIEncoding();

byte[] input = encoding.GetBytes(text); // zasifrovana data v podobe pole bytu
byte[] output = RSADecrypt(input, RSAKeyInfo, true);
Console.WriteLine("Vysledek: {0}", Encoding.ASCII.GetString(output)); // kodovani zvol podle potreby


static public byte[] RSADecrypt(byte[] DataToDecrypt, RSAParameters RSAKeyInfo, bool DoOAEPPadding)
{
try
{
byte[] decryptedData;
using (RSACryptoServiceProvider RSA = new RSACryptoServiceProvider())
{
RSA.ImportParameters(RSAKeyInfo);
decryptedData = RSA.Decrypt(DataToDecrypt, DoOAEPPadding);
}
return decryptedData;
}
catch (CryptographicException e)
{
Console.WriteLine(e.ToString());
return null;
}
}


Vysledek ma vypadat takto:
http://shop.mailshop.de/optiswiss.ch?osauth=03.09.2009 14:11:09#080999

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý