Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » verschlüsselung mit c++

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
09.03.2005, 19:09 Uhr
~Gast
Gast


Bei SMTP empfielt es sich natürlich immer an den Standard zu halten, so weit ich weiß wird dabei aber kein MD5 benutzt, da es sich um eine Hash-Funktion wahlweise mit 128, 160 oder 256 Bit message digest handelt. Du kannst zwar MD5 benutzen um einen Schlüssel zu generieren, aber verschlüsseln an sich tut da nichts. Dazu musst du schon RC4/5, DES, 3DES, AES, und all die anderen benutzen.
Wenn du dich aber nicht groß um diese Angelegenheit kümmern möchtest und kein SSL benutzen möchtest. Dann empfehle ich dir die C-Bibliothek "libtomcrypt" unter
http://libtomcrypt.org/. Da ist alles drin was es derzeit auf dem Markt gibt und "for free" ist es auch.
Kurz und einfach:
--- taken from domain ---
Public domain and open source.
Written entirely in portable ISO C source (except for things like RNGs for natural reasons)
Builds out of the box on virtually every box. All that is required is GCC for the source to build.
Includes a 90+ page user manual in PDF format (with working examples in it)
Block Ciphers
Ciphers come with an ECB encrypt/decrypt, setkey and self-test interfaces.
All ciphers have the same prototype which facilitates using multiple ciphers at runtime.
Some of the ciphers are flexible in terms of code size and memory usage.
Ciphers Supported.
Blowfish
XTEA
RC5
RC6
SAFER+
Rijndael (aka AES)
Twofish
SAFER (K64, SK64, K128, SK128)
RC2
DES, 3DES
CAST5
Noekeon
Skipjack
Anubis (with optional tweak as proposed by the developers)
Khazad
Chaining Modes
Modes come with a start, encrypt/decrypt and set/get IV interfaces.
Mode supported.
ECB
CBC
OFB
CFB
CTR
One-Way Hash Functions
Hashes come with init, process, done and self-test interfaces.
All hashes use the same prototypes for the interfaces.
Hashes supported.
MD2
MD4
MD5
SHA-1
SHA-224/256/384/512
TIGER-192
RIPE-MD 128/160
WHIRLPOOL
Message Authentication
FIPS-198 HMAC (supports all hashes)
FIPS pending OMAC1 (supports all ciphers)
PMAC Authentication
Message Encrypt+Authenticate Modes
EAX Mode
OCB Mode
Pseudo-Random Number Generators
Yarrow (based algorithm)
RC4
Support for /dev/random, /dev/urandom and the Win32 CSP RNG
Fortuna
SOBER-128
Public Key Algorithms
RSA (using PKCS #1 v2.1 and PKCS #1 v1.5)
DH (using ElGamal signatures and simple DH encryption)
ECC (over Z/pZ, ElGamal Signatures, simple DH style encryption)
DSA (Users make their own groups)
Other standards
PKCS #1 (both v1.5 and v2.0 padding)
PKCS #5
ASN.1 DER for INTEGER types

Ich denke da ist alles drin was man braucht. Die Bedienung ist auch echt easy.
Nen lieben Gruß!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
09.03.2005, 21:03 Uhr
0xdeadbeef
Gott
(Operator)


Ich denke, du redest da gerade von etwas ganz anderem. Bei PHP-Signierung einer Nachricht wird erst eine Prüfsumme über die Nachricht gelassen, die dann mit dem eigenen private key verschlüsselt wird. So kann jeder, der deinen public key hat, die Prüfsumme entschlüsseln und überprüfen, ob sie auf die Nachricht passt. Dabei können verschiedene MDs zum Einsatz kommen, wobei die gängigsten wohl MD5 (128 bit) und SHA-1 (160 bit) sein dürften. Der 256er MD, den du ansprichst, wird wohl SHA-256 sein.

CRAM-MD5 dagegen ist wieder etwas anderes. Es handelt sich dabei um eine Authentifikationsmethode, mit der ein User sich bei einem Server authentifizieren kann. Wenn ich mich richtig erinnere, läuft das etwa so ab, dass der Server dem Client ein Datenpaket schickt, das der dann prüfsummt und mit seinem Passwort verschlüsselt. Der Server widerum kennt das Passwort und kann das, was der Client zurückschickt, entschlüsseln. Wenn das, was er kriegt, ne MD5-Prüfsumme über den ursprünglich geschickten Text ist, lässt er den User rein (Korrigiert mich, wenn ich irgendwo was durcheinander geworfen habe).
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
09.03.2005, 21:53 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


sollte stimmen
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
25.04.2005, 14:54 Uhr
~Progger
Gast


Hi all,

bin bei meiner Suche eben auf den MD5 Code in diesem Thread gestossen und hab ihn versucht bei mir zu verwenden. Will ein Programm schreiben, das die MD5 Checksummen für Dateien berechnet. Hab jetzt dann in meinem Programm eine Datei geöffnet und den Inhalt in einen String geschrieben und diesen an den Code von oben übergeben um die MD5 Checksumme zu errechnen. Hab auch einen Checksumme erhalten. Aber als ich dann die Checksumme der Datei in einem Prüfsummenprogramm überprüft hab kam eine ganz andere Summe heraus. Hab ich etwas falsch gemacht, kann man das nicht so machen?

Gruß
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
29.04.2005, 20:54 Uhr
muhahahaha
Funsofts next Userpic model 2006 :D


hey wer misbraucht meinen namen?

@flo nach denn ersten hundert buchstaben hätte ich aufgehört weil ich denn ken bock mehr hätte

Dieser Post wurde am 29.04.2005 um 20:54 Uhr von muhahahaha editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
02.07.2005, 12:37 Uhr
~goody
Gast


@ FloSoft

bei deinem source den du gepostet hast
in welcher var stet am ende die prüfsumme der var source?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
02.07.2005, 12:54 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


in md5 steht hier in dem Beispiel der md5-schlüssel

C++:
CMD5 mymd5;
  char source[] = "Dies ist ein Eingabetext";
  char md5[33];

  mymd5.SetSource((unsigned char*)source,(unsigned int)strlen(source));
  mymd5.Generieren();

  if(mymd5.GetHexKey((unsigned char*)md5,(unsigned int)33) == 0)
  {
    std::cerr << "RUNTIME ERROR: GetHexKey lieferte 0" << std::endl;
  }


--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: