Как зашифровать в php5 и расшифровать в windows store 8.1 и c # с помощью aescbc

Привет, ребята, я зашифровал слово привет в строке в PHP с помощью метода AesCbc. Вот мой код

base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_128,'1234567890123456',pkcs7_pad('hello', 16),MCRYPT_MODE_CBC))

Результат

67fHA+Z12z2jlwOLTBeCPA==

Затем я отправляю этот результат в мое приложение Windows Store, и эту функцию я использую для его расшифровки.

        public string AES_Decrypt(string input, string pass)
{
SymmetricKeyAlgorithmProvider SAP = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbc);
CryptographicKey AES;
HashAlgorithmProvider HAP = HashAlgorithmProvider.OpenAlgorithm(HashAlgorithmNames.Md5);
CryptographicHash Hash_AES = HAP.CreateHash();

string decrypted = "";
try
{
byte[] hash = new byte[32];
Hash_AES.Append(CryptographicBuffer.CreateFromByteArray(System.Text.Encoding.UTF8.GetBytes(pass)));
byte[] temp;
CryptographicBuffer.CopyToByteArray(Hash_AES.GetValueAndReset(), out temp);

Array.Copy(temp, 0, hash, 0, 16);
Array.Copy(temp, 0, hash, 15, 16);

AES = SAP.CreateSymmetricKey(CryptographicBuffer.CreateFromByteArray(hash));

IBuffer Buffer = CryptographicBuffer.DecodeFromBase64String(input);
byte[] Decrypted;
CryptographicBuffer.CopyToByteArray(CryptographicEngine.Decrypt(AES,Buffer,null), out Decrypted);
decrypted = System.Text.Encoding.UTF8.GetString(Decrypted, 0, Decrypted.Length);

return decrypted;
}
catch (Exception ex)
{
return null;
}
}

Результатом является это

7��t�\a2H\0��g

Когда это должно быть «привет».
Так, где я иду не так в моем коде?

0

Решение

Ключ не хешируется в вашем коде PHP. Так что не делайте этого в C #:

AES = SAP.CreateSymmetricKey(CryptographicBuffer.CreateFromByteArray(
System.Text.Encoding.UTF8.GetBytes(pass)
));
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector