Ejemplo n.º 1
0
        /// <summary>
        /// gera lixo para embaralhar os dados
        /// </summary>
        /// <param name="Lenght">Tamanho da string</param>
        /// <param name="NoNumber">Se tem numero ou nao</param>
        /// <returns>String com lixo embaralhado</returns>
        public static string MakeTrash(int Lenght, Boolean NoNumber)
        {
            long   i, c;
            string RetVal;
            Random SysRand = new System.Random();

            RetVal = "";
            for (i = 1; i <= Lenght; i++)
            {
                c = SysRand.Next(32, 255);
                if (NoNumber = false | (c < 48 | c > 57))
                {
                    RetVal = RetVal + Utility.Chr((int)c);
                }
                else
                {
                    i = i - 1;
                }
            }
            return(RetVal);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Decodifica Base64
        /// </summary>
        /// <param name="strIn">String a ser decodificada</param>
        /// <returns>String decodificada</returns>
        public static string Decode(string strIn)
        {
            int    w1, w2, w3, w4, n;
            string strOut = "";
            string x      = "";

            for (n = 0; n < strIn.Length; n = n + 4)
            {
                w1 = -1; w2 = -1; w3 = -1; w4 = -1;
                w1 = MimeDecode(strIn.Substring(n, 1));
                if (n + 1 < strIn.Length)
                {
                    w2 = MimeDecode(strIn.Substring(n + 1, 1));
                }
                if (n + 2 < strIn.Length)
                {
                    w3 = MimeDecode(strIn.Substring(n + 2, 1));
                }
                if (n + 3 < strIn.Length)
                {
                    w4 = MimeDecode(strIn.Substring(n + 3, 1));
                }
                if (w2 >= 0)
                {
                    strOut += Utility.Chr(((w1 * 4 + Convert.ToInt32(w2 / 16)) & 255)); x += Convert.ToString(((w1 * 4 + Convert.ToInt32(w2 / 16)) & 255)) + " - ";
                }
                if (w3 >= 0)
                {
                    strOut += Utility.Chr(((w2 * 16 + Convert.ToInt32(w3 / 4)) & 255)); x += Convert.ToString(((w2 * 16 + Convert.ToInt32(w3 / 4)) & 255)) + " - ";
                }
                if (w4 >= 0)
                {
                    strOut += Utility.Chr(((w3 * 64 + w4) & 255)); x += Convert.ToString(((w3 * 64 + w4) & 255)) + " - ";
                }
            }
            return(strOut);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Encripta a string
        /// </summary>
        /// <param name="St">string a ser encriptada</param>
        /// <param name="Pw">Chave de encriptação</param>
        /// <returns>String encriptada</returns>
        private static string Cript(string St, string Pw)
        {
            string x = "";
            int    i;
            int    n = 0;
            int    p;
            int    j = 0;

            p = 0;
            for (i = 0; i < St.Length; i++)
            {
                if (p >= Pw.Length)
                {
                    p = 0;
                }

                j = Utility.Asc(Pw.Substring(p, 1)) | 128;

                n = Utility.Asc(St.Substring(i));
                p = p + 1;
DeNovo:
                n = n ^ j;
                if (n < 31)
                {
                    n = (128 + n);
                    goto DeNovo;
                }
                else if (n > 127 && n < 159)
                {
                    n = n - 128;
                    goto DeNovo;
                }
                x = x + Utility.Chr(n);
            }

            return(x);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Função para desencriptação de string
        /// </summary>
        /// <param name="Exp">String a ser codificada</param>
        /// <param name="Chv">Chave para ser usada na codificação</param>
        /// <returns>retorna a string decriptada</returns>
        static public string S002(string Exp, string Chv)
        {
            string RetVal, z, ExpChv;

            string[] Dados;
            int      j, i, Cont, t, ContChv, k, ContIni;
            byte     bit;

            t      = Exp.Length;
            Dados  = new string[t];
            ExpChv = "";

            //vamos montar a chave para encriptação
            for (i = 0; i < Chv.Length; i++)
            {
                for (j = 7; j >= 0; j--)
                {
                    bit     = Convert.ToByte((Utility.Asc(Chv.Substring(i, 1)) & (long)Math.Pow(2, j)) != 0);
                    ExpChv += Convert.ToString(bit);
                }
            }

            //desfaz o xor com a chave  (a posição de chave que deverá ser utilizada para desencriptar cada byte deverá ser: 13570246)
            ContChv = 0;
            for (i = 0; i < Exp.Length; i++)
            {
                z        = "";
                ContIni  = ContChv;
                ContChv += 1;
                if (ContChv == ExpChv.Length)
                {
                    ContChv = 0;
                }
                for (j = 0; j <= 7; j++)
                {
                    bit = Convert.ToByte(Convert.ToInt32((Utility.Asc(Exp.Substring(i, 1)) & (long)Math.Pow(2, j)) != 0) ^
                                         Convert.ToInt32(ExpChv.Substring(ContChv, 1)));
                    z = z + Convert.ToString(bit);
                    if (j == 3)
                    {
                        ContChv = ContIni;
                    }
                    else
                    {
                        for (k = 1; k <= 2; k++)
                        {
                            ContChv += 1;
                            if (ContChv == ExpChv.Length)
                            {
                                ContChv = 0;
                            }
                        }
                    }
                }
                Utility.ChangeStr(ref Exp, i, Utility.Chr(RetAsc(z)));
            }

            //agora vamos corrigir a posição de cada bit
            for (Cont = 0; Cont < t; Cont++)
            {
                for (j = 7; j >= 0; j--)
                {
                    // se ímpar...
                    if ((j & 1) != 0)
                    {
                        // calcula bit original
                        i = (7 - Convert.ToInt32(j / 2));

                        // usa primeiro char
                        bit = Convert.ToByte(Convert.ToInt32(Utility.Asc(Exp.Substring(Cont, 1)) & (long)Math.Pow(2, i)) != 0);
                    }
                    // par
                    else
                    {
                        // calcula bit original...
                        i = 3 - (j / 2);

                        // usa último char
                        bit = Convert.ToByte(Convert.ToInt32(Utility.Asc(Exp.Substring(t - Cont - 1, 1)) & (long)Math.Pow(2, i)) != 0);
                    }
                    Dados[Cont] = Convert.ToString(bit) + Dados[Cont];
                }
            }

            //agora vamos montar a string já desencriptada para retorno
            RetVal = "";
            for (i = 0; i < t; i++)
            {
                RetVal += Utility.Chr(RetAsc(Dados[i]));
            }

            return(RetVal);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Função para encriptação de string
        /// </summary>
        /// <param name="Exp">String a ser codificada</param>
        /// <param name="Chv">Chave para ser usada na codificação</param>
        /// <returns>Retorna a string encriptada</returns>
        public static string S001(string Exp, string Chv)
        {
            string RetVal, ExpChv, pi, pp;
            int    i, j, Cont, t, ContChv;

            string[] Dados;
            byte     bit;

            t     = Exp.Length;
            Dados = new string[t];

            ExpChv = "";

            //vamos montar a chave para encriptação
            for (i = 0; i < Chv.Length; i++)
            {
                for (j = 7; j >= 0; j--)
                {
                    bit     = Convert.ToByte((Utility.Asc(Chv.Substring(i, 1)) & (long)Math.Pow(2, j)) != 0);
                    ExpChv += Convert.ToString(bit);
                }
            }

            //vamos misturar os bits da string
            ContChv = 0;
            for (Cont = 0; Cont < t; Cont++)
            {
                pp = "";
                pi = "";
                for (j = 7; j >= 0; j--)
                {
                    // se ímpar...
                    if ((j & 1) != 0)
                    {
                        //usa o primeiro char
                        bit = Convert.ToByte(((Utility.Asc(Exp.Substring(Cont, 1)) & (long)Math.Pow(2, j)) != 0) ^
                                             (Convert.ToInt32(ExpChv.Substring(ContChv, 1)) != 0));
                        pi += Convert.ToString(bit);
                    }
                    // par
                    else
                    {
                        // usa o último char
                        bit = Convert.ToByte(((Utility.Asc(Exp.Substring(t - Cont - 1, 1)) & (long)Math.Pow(2, j)) != 0) ^
                                             (Convert.ToInt32(ExpChv.Substring(ContChv, 1)) != 0));
                        pp += Convert.ToString(bit);
                    }
                    ContChv += 1;
                    if (ContChv == ExpChv.Length)
                    {
                        ContChv = 0;
                    }
                }
                Dados[Cont] = (pp + pi);
            }

            //agora vamos montar a string já encriptada para retorno
            RetVal = "";
            for (i = 0; i < t; i++)
            {
                RetVal += Utility.Chr(RetAsc(Dados[i]));
            }

            return(RetVal);
        }