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

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Heroini.14.3, 15 May 2010.

  1. Heroini.14.3

    Heroini.14.3 New Member

    Joined:
    8 Aug 2009
    Messages:
    34
    Likes Received:
    4
    Reputations:
    0
    У меня есть некий страх,что меня пошлют или в гугл или куданить еще,но...
    Дело такое,С++ я не знаю и выучить наврятли успею,хотя щас этим и занимаюсь,а мне нужно срочно разобраться с куском кода,если не сложно кто-нибудь может оставить более-мение подробные комметнарии в коде,с обьяснением что это,что это и что в итоге получается,как в школе учителя обьясняли??ПЛЗ)))ну или не очень подробные,но коментарии после которых станет понятно как все это работает(не сам алгоритм а код)мне это ооочень поможет и в коде разобраться и к срр привыкнуть.
    вот сам код и файлы которые он инклудит:
    http://slil.ru/29136281
    и еще...Если не сложно,то могли бы вы сказать зачем ему такое кол-во фалов и как от этого избавиться??(мне нужен чистый алгоритм rsa без цифровых подписей и т.д.,а некоторые файли с ними как-то связаны)
    Заранее ОГРОООМНОЕ спасибо))))
     
  2. NetSter

    NetSter Moderator

    Joined:
    30 Jul 2007
    Messages:
    810
    Likes Received:
    414
    Reputations:
    62
    вот тебе моя лаба по RSA, написана на C#

    PHP:
    ...........//бла бла бла....
        
    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(plainbytesfalse);
                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(getpasswordfalse);
                return 
    System.Text.Encoding.UTF8.GetString(plain);

            }
        }

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

    ================
    Скачать файл WindowsFormsApplication1.rar
    пасс antichat


    -======================
    ОБновил ссыль
     
    _________________________
    #2 NetSter, 15 May 2010
    Last edited: 10 Nov 2010