예제 #1
0
        public static string EncryptRJ256(string prm_text_to_encrypt)
        {
            RijndaelManaged rijndaelManaged = new RijndaelManaged();

            rijndaelManaged.Padding   = PaddingMode.Zeros;
            rijndaelManaged.Mode      = CipherMode.CBC;
            rijndaelManaged.KeySize   = 256;
            rijndaelManaged.BlockSize = 256;
            byte[] array = new byte[0];
            byte[] rgbIV = new byte[0];
            string s     = Cryptographer.GenerateKeyString();
            string s2    = Cryptographer.RJ256Key;

            array = Encoding.UTF8.GetBytes(s);
            rgbIV = Encoding.UTF8.GetBytes(s2);
            ICryptoTransform transform    = rijndaelManaged.CreateEncryptor(array, rgbIV);
            MemoryStream     memoryStream = new MemoryStream();
            CryptoStream     cryptoStream = new CryptoStream(memoryStream, transform, CryptoStreamMode.Write);

            byte[] bytes = Encoding.UTF8.GetBytes(prm_text_to_encrypt);
            cryptoStream.Write(bytes, 0, bytes.Length);
            cryptoStream.FlushFinalBlock();
            byte[] array2 = memoryStream.ToArray();
            byte[] array3 = new byte[array2.Length + array.Length];
            Array.Copy(array2, 0, array3, 0, array2.Length);
            Array.Copy(array, 0, array3, array2.Length, array.Length);
            return(Convert.ToBase64String(array3));
        }
예제 #2
0
        /// <summary>
        /// 32桁のIV文字列を生成します。
        /// </summary>
        public static string GenerateIVString()
        {
            string text = string.Empty;

            for (int i = 0; i < 32; i++)
            {
                text += string.Format("{0}", Cryptographer.random());
            }
            return(text);
        }