NetVision-Technik

Zur?ck   NetVision-Technik > Forum > Programmierung > C / C++

C / C++ Hier findet ihr Code-Schnipsel zu C & C++

Antwort
 
Themen-Optionen Ansicht
Alt 11.03.2009, 12:32   #1
CCrypto
Bluesteel Bluesteel ist offline 11.03.2009, 12:32

So nun hier wieder etwas für alle
Verschlüsselungs-Erweiterung für CNetConn

also fangen wir mal an^^
datei namens crypto.h

Code:
/*

Cryptography extensions for CNetConn

Currently only implements simple XOR encoding



Dependencies: CString




*/



#ifndef _CRYPTO_H_INC_

#define _CRYPTO_H_INC_



#include <windows.h>

#include "string.h"





#define CRYPT_NONE      0

#define CRYPT_XOR       1



#define CRYPT_STD_KEY   "A"





/*

 *  class CCrypto

 *

 *  En/decrypts generic data e.g. for network communication or secure file storage

 *

 */

class CCrypto

{

    public:

        // Main constructor

        // Initializes class and some variables

        CCrypto();



        // Main destructor

        // Frees memory and terminates app

        ~CCrypto();



        int SetMethod(int iMethod);



        CString Encrypt(CString strData);

        CString Decrypt(CString strData);



        CString EncryptXOR(CString, CString);

        CString DecryptXOR(CString, CString);



    private:

        int m_iMethod;

};



#endif  // ifdef _CRYPTO_H_INC_
und nun die datei namens crypto.cpp

Code:
/*

Cryptography extensions for CNetConn

Currently only implements simple XOR encoding



Dependencies: CString





*/



#include "crypto.h"



/*

 *  default constructor

 *

 */

CCrypto::CCrypto()

{

    m_iMethod = CRYPT_NONE;

}



CCrypto::~CCrypto()

{

}



int CCrypto::SetMethod(int iMethod)

{

    m_iMethod = iMethod;

    return 0;

}



CString CCrypto::Encrypt(CString strData)

{

    CString strStdKey = CRYPT_STD_KEY;



    switch (m_iMethod)

    {

        case CRYPT_NONE:

            return strData;



        case CRYPT_XOR:

            return EncryptXOR(strData, strStdKey);



        default:

            return strData;

    }

}



CString CCrypto::Decrypt(CString strData)

{

    CString strStdKey = CRYPT_STD_KEY;



    switch (m_iMethod)

    {

        case CRYPT_NONE:

            return strData;



        case CRYPT_XOR:

            return DecryptXOR(strData, strStdKey);



        default:

            return strData;

    }

}



CString CCrypto::EncryptXOR(CString strData, CString strKey)

{

    CString strOut;

    int iPos;

    int iKeyPos = 0;

    int iLen = strData.GetLength();

    int iKeyLen = strKey.GetLength();



    if (!iKeyLen || !iLen) return strOut;  // return empty String  if data or key is empty



    for (iPos = 0; iPos < iLen; iPos++)

    {

        strOut += strData[iPos] ^ strKey[iKeyPos++];

        if (iKeyPos >= iKeyLen) iKeyPos = 0;

    }



    return strOut;

}



CString CCrypto::DecryptXOR(CString strData, CString strKey)

{

    return EncryptXOR(strData, strKey);

}
viel spaß^^
__________________




 
Benutzerbild von Bluesteel
Bluesteel
Super-Moderator
Letzte Erfolge
Registriert seit: 27.05.2008
Ort: zu hause
Beitr?ge: 2.029
Abgegebene Danke: 510
Erhielt 302 Danke für 52 Beiträge
Downloads: 48
Uploads: 2
Nachrichten: 1565
Hits: 21908
Mit Zitat antworten
Folgende 3 Benutzer sagen Danke zu Bluesteel für den nützlichen Beitrag:
DJJeGgA (15.03.2009), LOL (11.03.2009), Thunder™ (15.10.2010)
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, G?ste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beitr?ge zu antworten.
Es ist Ihnen nicht erlaubt, Anh?nge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beitr?ge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:31 Uhr.


Powered by vBulletin® Version 3.8.9 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Template-Modifikationen durch TMS