コード例 #1
0
        public override object execute(object obj, int index, int length)
        {
            if (method == "rsa" && index == 1)
            {
                d = Convert.ToInt32(obj);
            }
            else if (method == "rsa" && index == 2)
            {
                n = Convert.ToInt32(obj);
            }
            else if (index == 0)
            {
                method = (obj + "").Trim().ToLower();
            }
            else if (index == 1 && length > 2)
            {
                key = (obj + "").Trim().ToLower();
            }
            else
            {
                switch (method)
                {
                case "caesar":
                    if (_decrypt && !_encrypt)
                    {
                        return(cryp.CaesarCiphertoPlain(obj + "", int.Parse(key)));
                    }
                    else
                    {
                        return(cryp.CaesarPlaintoCipher(obj + "", int.Parse(key)));
                    }

                case "ecb":
                    if (_decrypt && !_encrypt)
                    {
                        return(cryp.ECBCiphertoPlain(obj + "", key));
                    }
                    else
                    {
                        return(cryp.ECBPlaintoCipher(obj + "", key));
                    }

                case "mcbac":
                    if (_decrypt && !_encrypt)
                    {
                        return(cryp.MCBACCiphertoPlain(obj + "", int.Parse(key)));
                    }
                    else
                    {
                        return(cryp.MCBACPlaintoCipher(obj + "", int.Parse(key)));
                    }

                case "rsa":
                    if (_decrypt && !_encrypt)
                    {
                        return(cryp.RSACiphertoPlain(Convert.ToInt32(obj), d, n));
                    }
                    else
                    {
                        if (d == 0)
                        {
                            int[] rsa = cryp.RSAGetKeys();
                            return(new object[] { "e = " + rsa[0] + ", d = " + rsa[1] + ", n = " + rsa[2], cryp.RSAPlaintoCipher(Convert.ToInt32(obj), rsa[0], rsa[2]) });
                        }
                        else
                        {
                            return(cryp.RSAPlaintoCipher(Convert.ToInt32(obj), d, n));
                        }
                    }

                case "nta":
                    return(MiMFa_Convert.ToAlphabet(Convert.ToInt32(obj)));
                }
            }

            return(Null);
        }