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
Fórum › .NET
Pomoc s sifrovani RSA
To Krychlik :
Ja vim :-) ten Privatkey se stejne jeste zmeni :-) tohle mel byt testovaci klic...potrebuju ale poradit
S šifrováním jsem si užil svoje :smile1: , tím nechci říct, že jsem na to nějaký guru :smile13: .
Ale když začínáš, máš data, která vznikla nějak a ty nevíš jak, tak může být chyba na tolika místech.
Doporučil bych ti, aby sis z těch dat vygeneroval zašifrovaná data sám tj. implementoval oba směry šifrování, když už máš oba klíče. A uvidíš, jestli se to bude shodovat, jestli ti půjdou oba směry atd.
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 26 hostů
Podobná vlákna
[JAVA]- prosím o pomoc, radu s programem - šifrování textu — založil MathiasX
RSA blokový převod — založil Paragoon2
Zajímavý projekt - RSA pomůže někdo? — založil jamesonman
Šifrování v pascalu — založil Halinek23
Moderátoři diskuze