cifrado AES y descifrado php c #

php7

<? php? 

$ key = "1234567890123456"; 

$ encrypt_data = openssl_encrypt ( 'ABCDEFG', "AES-128-BCE, $ clave, 0, ""); 
echo $ encrypt_data; 
echo '<br/>'; 

$ decrypt_data = openssl_decrypt ($ encrypt_data, AES-128-BCE, $ clave, 0, ""); 
echo $ decrypt_data; 
echo '<br/>'; 

?>

C#

using System; 
usando System.Security.Cryptography; 
usando System.Text; 

ConsoleApp18 espacio de nombres 
{ 
    clase del Programa 
    { 
        static void main (String [] args) 
        { 
            contenido var = "ABCDEFG"; 

            clave var = "1234567890123456"; 

            var str1 = Cifrar (contenido, clave); 
            Console.WriteLine (str1); 

            str2 var = Decrypt (str1, clave); 
            Console.WriteLine (str2); 

            Console.ReadLine (); 
        } 

        Public static string Cifrar (cadena toEncrypt, clave de cadena) 
        { 
            byte [] = keyarray UTF8Encoding.UTF8.GetBytes (clave);
            byte [] toEncryptArray = UTF8Encoding.UTF8.GetBytes (toEncrypt); 

            AesCryptoServiceProvider RDEL = nuevo AesCryptoServiceProvider (); 
            rDel.Key = keyarray; 
            rDel.Mode = CipherMode.ECB; 
            rDel.Padding = PaddingMode.PKCS7; 

            ICryptoTransform CTransform = rDel.CreateEncryptor (); 
            byte [] resultArray = cTransform.TransformFinalBlock (toEncryptArray, 0, toEncryptArray.Length); 

            retorno Convert.ToBase64String (resultArray, 0, resultArray.Length); 
        } 

        Public static string Descifrar (cadena toDecrypt, clave de cadena) 
        {  
            byte [] = keyarray UTF8Encoding.UTF8.GetBytes (clave);
            byte [] = toEncryptArray Convert.FromBase64String (toDecrypt);

            AesCryptoServiceProvider RDEL = nuevo AesCryptoServiceProvider (); 
            rDel.Key = keyarray; 
            rDel.Mode = CipherMode.ECB; 
            rDel.Padding = PaddingMode.PKCS7; 

            ICryptoTransform CTransform = rDel.CreateDecryptor (); 
            byte [] resultArray = cTransform.TransformFinalBlock (toEncryptArray, 0, toEncryptArray.Length); 

            retorno UTF8Encoding.UTF8.GetString (resultArray); 
        } 
    } 
}

Nota php relleno predeterminado longitud de la clave no es el modo de 16 bytes PKCS7 rellenar automáticamente la longitud C # clave de 16 bytes no ser dado

Los resultados operativos

Supongo que te gusta

Origin www.cnblogs.com/foggy2330/p/12591684.html
Recomendado
Clasificación