PDA

Просмотр полной версии : Исходники алгоритма rsa,и помощь по c++


Heroini.14.3
15.05.2010, 10:28
У меня есть некий страх,что меня пошлют или в гугл или куданить еще,но...
Дело такое,С++ я не знаю и выучить наврятли успею,хотя щас этим и занимаюсь,а мне нужно срочно разобраться с куском кода,если не сложно кто-нибудь может оставить более-мение подробные комметнарии в коде,с обьяснением что это,что это и что в итоге получается,как в школе учителя обьясняли??ПЛЗ)))ну или не очень подробные,но коментарии после которых станет понятно как все это работает(не сам алгоритм а код)мне это ооочень поможет и в коде разобраться и к срр привыкнуть.
вот сам код и файлы которые он инклудит:
http://slil.ru/29136281
и еще...Если не сложно,то могли бы вы сказать зачем ему такое кол-во фалов и как от этого избавиться??(мне нужен чистый алгоритм rsa без цифровых подписей и т.д.,а некоторые файли с ними как-то связаны)
Заранее ОГРОООМНОЕ спасибо))))

NetSter
15.05.2010, 13:41
вот тебе моя лаба по RSA, написана на C#

...........//бла бла бла....
public class Cryptography
{
public static RSACryptoServiceProvider rsa;

public static void AssignParameter()
{
const int PROVIDER_RSA_FULL = 1;
const string CONTAINER_NAME = "SpiderContainer";
CspParameters cspParams;
cspParams = new CspParameters(PROVIDER_RSA_FULL);
cspParams.KeyContainerName = CONTAINER_NAME;
cspParams.Flags = CspProviderFlags.UseMachineKeyStore;
cspParams.ProviderName = "Microsoft Strong Cryptographic Provider";
rsa = new RSACryptoServiceProvider(cspParams);
}

public static string EncryptData(string data2Encrypt)
{
AssignParameter();
StreamReader reader = new StreamReader("group.xml");
string publicOnlyKeyXML = reader.ReadToEnd();
rsa.FromXmlString(publicOnlyKeyXML);
reader.Close();
byte[] plainbytes = System.Text.Encoding.UTF8.GetBytes(data2Encrypt);
byte[] cipherbytes = rsa.Encrypt(plainbytes, false);
return Convert.ToBase64String(cipherbytes);
}

public static void AssignNewKey()
{
AssignParameter();
StreamWriter writer = new StreamWriter(@"personal.xml");
string publicPrivateKeyXML = rsa.ToXmlString(true);
writer.Write(publicPrivateKeyXML);
writer.Close();
writer = new StreamWriter(@"group.xml");
string publicOnlyKeyXML = rsa.ToXmlString(false);
writer.Write(publicOnlyKeyXML);
writer.Close();

}

public static string DecryptData(string data2Decrypt)
{
AssignParameter();
byte[] getpassword = Convert.FromBase64String(data2Decrypt);
StreamReader reader = new StreamReader(@"personal.xml");
string publicPrivateKeyXML = reader.ReadToEnd();
rsa.FromXmlString(publicPrivateKeyXML);
reader.Close();
byte[] plain = rsa.Decrypt(getpassword, false);
return System.Text.Encoding.UTF8.GetString(plain);

}
}

}


это основная часть.
весь же проект щя залью.

================
Скачать файл WindowsFormsApplication1.rar (http://dump.ru/file/4585039)
пасс antichat