2016-05-25 6 views
-1

Ich arbeite an einem Projekt, wo ich mit .net Team koordinieren muss. Ich brauche den entsprechenden Code für den unten genannten AES-Verschlüsselungsalgorithmus (in C# geschrieben) in Objective -C .. ich habe versucht, AESCrypt und CommonCrypt verwenden, aber es ist nicht well..getting verschiedene Verschlüsselungswert in beiden Sprachen woking ..AES Verschlüsselungstechnik in Ziel 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; 
} 

bitte help..thanks in advace

+1

ich etwa eine Woche verbracht. Ich kann keinen Code dafür schreiben, weil er zu ihnen gehört, aber Sie könnten in 'RNCryptor' und' NSData + Base64' schauen. Obwohl der Base64-Teil derzeit in den neuesten Versionen der Apple-Sprachen integriert ist. – Putz1103

+1

Es gibt viele Beispiele im Internet. Ich bin sicher, du wirst einen finden. Was hat das mit Caesar-Cipher zu tun? –

+0

Beachten Sie, dass 'Rfc2898DeriveBytes'' PBKDF2' ist, wie in msdn [Rfc2898DeriveBytes-Klasse] (https://msdn.microsoft.com/en-us/library/system.security.cryptography.rfc2898derivebytes (v = vs.110) angegeben). aspx). Apples Common Crypto bietet 'PBKDF2'. – zaph

Antwort

0

in Antwort auf die Verwendung CCKeyDerivationPBKDF anstelle von Rfc2898DeriveBytes:

Ein einfaches C-Beispiel für PBKDF2 mit Common Crypto.
Bei der Konvertierung einer C++ - Zeichenfolge in ein Byte-Array sollte in der Regel Vorsicht walten gelassen werden, bei der Konvertierung wird UTF-8 verwendet. die gleiche Sache für mein Unternehmen

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"); 

Ausgabe

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

+0

Hallo Sir, können Sie mir bitte den Code für die oben genannten Verschlüsselungstechniken zur Verfügung stellen. Ich brauche seine objektive -C-Codierung. Mit CCKeyDerivationPBKDF konnte ich das Schlüsselteil verschlüsseln, aber ich muss meine Daten auch zusammen mit Schlüssel verschlüsseln. Wie werde ich das tun? –

+0

Fügen Sie hinzu, was Sie versucht haben, auf die Frage. Es gibt mehrere Objective-C-Beispiele zu SO, Sie müssen sie nur an C++ anpassen, das sollte einfach sein, da Common Crypto "C" ist. – zaph