Php. Net şifresini çözmek içinde Şifreleme

0 Cevap

Ben php tarafından çözülür bazı C # şifreleniyor yazıyorum. Onlar birlikte çok iyi çalışmıyor. Php müşteri kendi yapılandırması (RSSL_KEYGEN_PKCS5_V20, CBC modunda 256 bit AES, RSSL_PAD_ANSIX923) beni bilgilendirdi. İşte araya budur:

public static byte[] Encrypt(byte[] plainText, string password,
         CipherMode cipherMode, int keySize, PaddingMode paddingMode)
    {
        byte[] salt = new byte[8];
        new RNGCryptoServiceProvider().GetBytes(salt);

        // PKCS#5 V2.0 PBKDF2 keyGenerator (uses default iteration count of 1000) 
        Rfc2898DeriveBytes keyGenerator = new Rfc2898DeriveBytes(password, salt);

        AesCryptoServiceProvider aes = new AesCryptoServiceProvider();
        aes.Mode = cipherMode;
        aes.KeySize = keySize;
        aes.Padding = paddingMode;
        aes.Key = keyGenerator.GetBytes(aes.KeySize / 8);

        // aes.Padding is left default PaddingMode.PKCS7 
        // aes.IV should be automatically set to some random value by .NET 
        // (as described in http://msdn.microsoft.com/en-us/library/5e9ft273(VS.71).aspx) 

        // Overestimate encrypted size requirements 
        byte[] encryptedDataBuffer = new byte[plainText.Length + 32 + 32 + 8];
        MemoryStream encryptedOutput = new MemoryStream(encryptedDataBuffer, true);
        CryptoStream encStream = new CryptoStream(encryptedOutput, aes.CreateEncryptor(),
                                                  CryptoStreamMode.Write);

        encryptedOutput.Write(salt, 0, salt.Length);
        encryptedOutput.Write(aes.IV, 0, aes.IV.Length);
        encStream.Write(plainText, 0, plainText.Length);

        encStream.FlushFinalBlock();
        byte[] encryptedData = new byte[encryptedOutput.Position];
        Array.Copy(encryptedDataBuffer, encryptedData, encryptedData.Length);
        encStream.Close();

        return encryptedData;
    }

Ben şifrelemek ve benim tarafımda şifresini, ama onlar bunu şifresini yapamazsınız. Ben burada yanlış yapıyorum bir şey var mı? Ben böyle bir şey geçmek:

Encrypt(mytext, myPassword, CipherMode.CBC, 256, PaddingMode.ANSIX923);

Teşekkürler.

0 Cevap