FP300Service.MessageBuilder.EncryptTriple C# (CSharp) Метод

EncryptTriple() публичный статический Метод

public static EncryptTriple ( byte data, int len, byte tripleKey ) : byte[]
data byte
len int
tripleKey byte
Результат byte[]
        public static byte[] EncryptTriple(byte[] data, int len, byte[] tripleKey)
        {
            TripleDESCryptoServiceProvider des = GetTripleDESProvider(tripleKey);
            try
            {
                MemoryStream mStream = new MemoryStream();
                CryptoStream cStream = new CryptoStream(mStream, des.CreateEncryptor(), CryptoStreamMode.Write);

                cStream.Write(data, 0, len);
                cStream.FlushFinalBlock();

                byte[] retVal = mStream.ToArray();

                cStream.Close();
                mStream.Close();

                return retVal;
            }
            catch (CryptographicException e)
            {
                return null;
            }
        }

Usage Example

Пример #1
0
        internal static byte[] CreateTripleDES(RSAItems rsaItems, byte[] tripleKey)
        {
            List <byte> triplePacket = new List <byte>();

            triplePacket.AddRange(MessageBuilder.HexToByteArray(GMPDataTags.DT_ENC_KEY));
            triplePacket.AddRange(MessageBuilder.AddLength(256));
            //tripleKey = Encoding.ASCII.GetBytes("1234567890123456");
            triplePacket.AddRange(MessageBuilder.EncryptRSA(rsaItems.Modulus, rsaItems.Exponent, tripleKey));

            //KEY VALUE
            byte[] arrCheck = new byte[32];
            for (int i = 0; i < 32; i++)
            {
                arrCheck[i] = (byte)0;
            }
            arrCheck = MessageBuilder.EncryptTriple(arrCheck, arrCheck.Length, tripleKey);
            List <byte> chk = new List <byte>();

            for (int i = 0; i < 16; i++)
            {
                chk.Add(arrCheck[i]);
            }
            triplePacket.AddRange(MessageBuilder.HexToByteArray(GMPDataTags.DT_CHK_VAL));
            triplePacket.AddRange(MessageBuilder.AddLength(16));
            triplePacket.AddRange(chk.ToArray());

            return(triplePacket.ToArray());
        }