Zum Inhalt springen

verschlüsselung in c++


posthorn

Empfohlene Beiträge

Hallo,

ich versuche gerade ein kleines programm zu schreiben in dem ich einen string und später eine datei verschlüsseln kann, und noch später würd ich gern den sha hash mit einbauen wollen, jedoch weiß ich nicht wie ich anfangen bzw welche komponente ich dafür am betsen benutzen könnte. ich habs mit crptopp versucht aber jedoch steige ich da einfach nicht durch die befehle durch :( könntet Ihr mir evtl weiterhelfen ?? danke schon einmal

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...
Die Hilfedatei, die du hier finden kannst, bietet einen guten Einstieg in Crypto++.

hallo danke für deinen link aber irgendwie will einfach der groschen nicht fallen und möchte dich daher nocheinmal um hilfe bitten ich hab ein ziemlich kurzes beispiel gefunden mit folgendem Code:


// aestest1.cpp
#include "StdAfx.h"

// Runtime Includes
#include <iostream>
#include <iomanip>

// Crypto++ Includes
#include "cryptlib.h"
#include "aes.h" // AES
#include "modes.h" // CBC_Mode< >
#include "filters.h" // StringSource

int main(int argc, char* argv[]) {

// Key and IV setup
byte key[ CryptoPP::AES::DEFAULT_KEYLENGTH ],
iv[ CryptoPP::AES::BLOCKSIZE ];

::memset( key, 0x01, CryptoPP::AES::DEFAULT_KEYLENGTH );
::memset( iv, 0x01, CryptoPP::AES::BLOCKSIZE );

// Message M
std::string PlainText = "Hello AES World";

// Debug
std::cout << "Plain Text:" << std::endl;
std::cout << " '" << PlainText << "'" << std::endl;
std::cout << std::endl;
std::cout << "key: ";
std::cout << key <<std::endl;

// Cipher Text Sink
std::string CipherText;

// Encryption
CryptoPP::CBC_Mode<CryptoPP::AES>::Encryption
Encryptor( key, sizeof(key), iv );

CryptoPP::StringSource( PlainText, true,
new CryptoPP::StreamTransformationFilter( Encryptor,
new CryptoPP::StringSink( CipherText )
) // StreamTransformationFilter
); // StringSource

// Debug
std::cout << "Cipher Text (" << CipherText.size() <<") bytes:" << std::endl;
for(unsigned int i = 0; i < CipherText.size(); i++ )
{
if( 0 != i && 10 == i ) { std::cout << std::endl; }
std::cout << std::hex << "0x";
std::cout << ( static_cast<unsigned>( 0xFF & CipherText[ i ] ) ) << " ";
}
std::cout << std::endl << std::endl;

///////////////////////////////////////
// DMZ //
///////////////////////////////////////

// Recovered Text Sink
std::string RecoveredText;

// Decryption
CryptoPP::CBC_Mode<CryptoPP::AES>::Decryption
Decryptor( key, sizeof(key), iv );

CryptoPP::StringSource( CipherText, true,
new CryptoPP::StreamTransformationFilter( Decryptor,
new CryptoPP::StringSink( RecoveredText )
) // StreamTransformationFilter
); // StringSink

// Debug
std::cout << "Recovered Text:" << std::endl;
std::cout << " '" << RecoveredText << "'" << std::endl;
std::cout << std::endl;

return 0;
}
[/PHP]

nun das ausführen klappt wunderbar nun frage ich mich allerdings wo zum geier wird da der Wert zum verschlüsseln festgelegt (quasi das PW).

wie gesagt irgendwie klemmt es da bei mir mit crypto++ im vorraus schon einmal vielen dank

Link zu diesem Kommentar
Auf anderen Seiten teilen



// Key and IV setup
byte key[ CryptoPP::AES::DEFAULT_KEYLENGTH ],
iv[ CryptoPP::AES::BLOCKSIZE ];

::memset( key, 0x01, CryptoPP::AES::DEFAULT_KEYLENGTH );
::memset( iv, 0x01, CryptoPP::AES::BLOCKSIZE );


[/PHP]

ok das bedeutet also das mit byte der kye und iv nach vorgabe von crypto++ initialisiert wird und memset weißt dann das byte "0x01" der gesamten länge zu. aber muß denn das unbedingt ein byte sein oder kann ich auch einen string hinzufügen ?? und wenn ja könntest du mir kurz weiterhelfen wie das dann aussehen müßte ?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...