2016-05-25 2 views
-1

Je travaille sur un projet où je dois coordonner avec l'équipe .net .. J'ai besoin du code équivalent pour l'algorithme de cryptage AES mentionné ci-dessous (écrit en C#) dans l'objectif -C .. J'ai essayé d'utiliser AESCrypt et CommonCrypt mais son pas woking well..getting valeur différente de chiffrement dans les deux langues ..AES technique de cryptage dans l'objectif C

private string Encrypt(string clearText) 
{ 
    string EncryptionKey = "MAKV2SPBNI99212"; 
    byte[] clearBytes = Encoding.Unicode.GetBytes(clearText); 
    using (Aes encryptor = Aes.Create()) 
    { 
     Rfc2898DeriveBytes pdb = new Rfc2898DeriveBytes(EncryptionKey, new byte[] { 0x49, 0x76, 0x61, 0x6e, 0x20, 0x4d, 0x65, 0x64, 0x76, 0x65, 0x64, 0x65, 0x76 }); 
     encryptor.Key = pdb.GetBytes(32); 
     encryptor.IV = pdb.GetBytes(16); 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      using (CryptoStream cs = new CryptoStream(ms, encryptor.CreateEncryptor(), CryptoStreamMode.Write)) 
      { 
       cs.Write(clearBytes, 0, clearBytes.Length); 
       cs.Close(); 
      } 
      clearText = Convert.ToBase64String(ms.ToArray()); 
     } 
    } 
    return clearText; 
} 

help..thanks vous plaît à advace

+1

J'ai passé une semaine à faire la même chose pour mon entreprise. Je ne peux pas poster de code pour cela parce qu'il leur appartient, mais vous pouvez regarder dans 'RNCryptor' et' NSData + Base64'. Bien que la partie Base64 soit actuellement intégrée dans les dernières versions des langages Apple. – Putz1103

+1

Il existe de nombreux exemples sur Internet. Je suis sûr que vous en trouverez un. Aussi, qu'est-ce que cela a à voir avec Caesar-Cipher? –

+0

Notez que '' Rfc2898DeriveBytes' est PBKDF2' comme indiqué dans msdn [Rfc2898DeriveBytes classe] (https://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes (v = vs.110). aspx). Common Crypto d'Apple fournit 'PBKDF2'. – zaph

Répondre

0

en réponse à l'utilisation CCKeyDerivationPBKDF en place de Rfc2898DeriveBytes:

Un simple exemple C de PBKDF2 utilisant Common Crypto.
Il faut prendre soin de convertir une chaîne C++ en un tableau d'octets, en général utiliser UTF-8 dans la conversion.

const char passwordData[] = "password"; 
size_t  passwordLength = strlen(passwordData); 
uint8_t  salt[]   = {0x01, 0x02, 0x03, 0x04}; 
size_t  saltLength  = sizeof(salt); 
uint  rounds   = 1000; 
const int derivedKeySize = 16; 
uint8_t  derivedKey[derivedKeySize]; 

CCKeyDerivationPBKDF(kCCPBKDF2, 
        passwordData, passwordLength, 
        salt, saltLength, 
        kCCPRFHmacAlgSHA1, 
        rounds, 
        derivedKey, derivedKeySize); 

for (int i=0; i<derivedKeySize; i++) { 
    printf("%2x ", derivedKey[i]); 
} 
printf("%s", "\n"); 

Sortie

31 96 42 56 91 3f 7F b3 85 3e fa 43 39 5e 69 93

+0

Bonjour monsieur, pouvez-vous s'il vous plaît me fournir le code pour les techniques de chiffrement ci-dessus utilisés dans .net.I besoin de son objectif de codage C. En utilisant CCKeyDerivationPBKDF j'ai pu chiffrer la partie clé, mais je dois chiffrer mes données trop long avec la clé .. comment vais-je faire? –

+0

Ajoutez ce que vous avez essayé à la question. Il existe plusieurs exemple Objective-C sur le SO, il vous suffit de les adapter à C++, qui devrait être facile puisque Common Crypto est « C ». – zaph