c# यूडब्ल्यूपी: एईएस एन्क्रिप्शन और डिक्रिप्शन



encryption uwp (1)

मेरे पास विंडोज़ फ़ोन 8 के लिए कुछ बुनियादी स्थानीय एन्क्रिप्शन करने के लिए एक सरल वर्ग था। मैं विंडोज स्टोर के लिए एक नया यूडब्ल्यूपी विंडोज 10 ऐप में फिर क्लास का इस्तेमाल करना चाहता था। दुर्भाग्य से अब मैं एस्मैनेज्ड क्लास का उपयोग नहीं कर सकता।

मैंने Windows.Security.Cryptography.Core का उपयोग करने की कोशिश की, लेकिन मैं पूरी तरह से फंस गया हूँ। यह मूल कक्षा है जिसे मैंने विंडोज 8 फोन के लिए इस्तेमाल किया था। मुझे इंटरनेट पर कहीं इसे वापस मिल गया होगा।

using System.Security.Cryptography;

namespace TestGame

{
    public class AesEnDecryption
    {
        private string AES_Key = "MYLiSQ864FhDevJOeMs9EVp5RmfC7OuH";
        private string AES_IV = "FoL5Tyd9sZclVn5A";

        public string AES_encrypt(string Input)
        {
            var aes = new AesManaged();
            aes.KeySize = 128;
            aes.BlockSize = 128;
            aes.Key = Convert.FromBase64String(AES_Key);
            aes.IV = Encoding.UTF8.GetBytes(AES_IV);

            var encrypt = aes.CreateEncryptor(aes.Key, aes.IV);
            byte[] xBuff = null;
            using (var ms = new MemoryStream())
            {
                using (var cs = new CryptoStream(ms, encrypt, CryptoStreamMode.Write))
                {
                    byte[] xXml = Encoding.UTF8.GetBytes(Input);
                    cs.Write(xXml, 0, xXml.Length);
                }

                xBuff = ms.ToArray();
            }

            string Output = Convert.ToBase64String(xBuff);
            return Output;
        }

        public string AES_decrypt(string Input)
        {
            var aes = new AesManaged();
            aes.KeySize = 128;
            aes.BlockSize = 128;
            aes.Key = Convert.FromBase64String(AES_Key);
            aes.IV = Encoding.UTF8.GetBytes(AES_IV);

            var decrypt = aes.CreateDecryptor();
            byte[] xBuff = null;
            using (var ms = new MemoryStream())
            {
                using (var cs = new CryptoStream(ms, decrypt, CryptoStreamMode.Write))
                {
                    byte[] xXml = Convert.FromBase64String(Input);
                    cs.Write(xXml, 0, xXml.Length);
                }

                xBuff = ms.ToArray();
            }

            string Output = Encoding.UTF8.GetString(xBuff, 0, xBuff.Length);

            return Output;
        }
    }
}

क्या किसी को यूडब्ल्यूपी विंडोज 10 एप्स के लिए इसका अनुवाद करना है?

धन्यवाद!


आपको सिमेट्रिक एल्गोरिथ्मप्रदाता और क्रिप्टोग्राफ़िक एग्निइन के बारे में दस्तावेज़ीकरण पढ़ना होगा

मेरे पास यहां एक छोटा उदाहरण है, इन दोनों का उपयोग कैसे करें:

using System;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using Windows.Security.Cryptography;
using Windows.Security.Cryptography.Core;
using Windows.Storage.Streams;

namespace CryptTest
{
    public class AesEnDecryption
    {

        // Key with 256 and IV with 16 length
        private string AES_Key = "Y+3xQDLPWalRKK3U/JuabsJNnuEO91zRiOH5gjgOqck=";
        private string AES_IV = "15CV1/ZOnVI3rY4wk4INBg==";
        private IBuffer m_iv = null;
        private CryptographicKey m_key;

        public AesEnDecryption()
        {

            IBuffer key = Convert.FromBase64String(AES_Key).AsBuffer();
            m_iv = Convert.FromBase64String(AES_IV).AsBuffer();
            SymmetricKeyAlgorithmProvider provider = SymmetricKeyAlgorithmProvider.OpenAlgorithm(SymmetricAlgorithmNames.AesCbcPkcs7);
            m_key = provider.CreateSymmetricKey(key);
        }

        public byte[] Encrypt(byte[] input)
        {

            IBuffer bufferMsg = CryptographicBuffer.ConvertStringToBinary(Encoding.ASCII.GetString(input), BinaryStringEncoding.Utf8);
            IBuffer bufferEncrypt = CryptographicEngine.Encrypt(m_key, bufferMsg, m_iv);
            return bufferEncrypt.ToArray();
        }

        public byte[] Decrypt(byte[] input)
        {
            IBuffer bufferDecrypt = CryptographicEngine.Decrypt(m_key, input.AsBuffer(), m_iv);
            return bufferDecrypt.ToArray();
        }
    }
}

जब आप किसी अन्य एल्गोरिथ्म का उपयोग करना चाहते हैं तो AesCbcPkcs7 , तो आपको AesCbcPkcs7 एल्गोरिथ्मनाम को बदलना होगा





aes