Rijndael algorithm (How to create our own Key )

前端 未结 3 531
自闭症患者
自闭症患者 2021-02-10 09:23

All the samples for Rijndael algorithm are defining the key from the Rijndael class itself, can\'t we provide the Key of our own. Any hint on this will help me a lot.

Th

相关标签:
3条回答
  • 2021-02-10 09:27

    The key property of the Rijndael instance takes a byte[] as the key. Make sure you set it to an array with a valid size for the algorithm.

    Link to msdn: http://msdn.microsoft.com/en-us/library/system.security.cryptography.symmetricalgorithm.key.aspx

    0 讨论(0)
  • 2021-02-10 09:43

    What do you mean by cannot provide the key of our own? Here's an example on how you do it.

    public static string Encrypt(string Text, byte[] key, byte[] VectorBytes){
        try{
            byte[] TextBytes = Encoding.UTF8.GetBytes(Text);        
            RijndaelManaged rijKey = new RijndaelManaged();
            rijKey.Mode = CipherMode.CBC; 
            ICryptoTransform encryptor = rijKey.CreateEncryptor(key,VectorBytes); 
            MemoryStream memoryStream = new MemoryStream(); 
            cryptoStream.Write(TextBytes, 0, TextBytes.Length); 
            cryptoStream.FlushFinalBlock(); 
            byte[] cipherTextBytes = memoryStream.ToArray();
            memoryStream.Close();
            cryptoStream.Close(); 
            string cipherText = Convert.ToBase64String(cipherTextBytes); 
            return cipherText;
        } 
        catch (Exception e){
            MessageBox.Show("Falsches Passwort "+ e.Message.ToString());
            string t = "";
            return t;
        }
    }
    
    0 讨论(0)
  • 2021-02-10 09:47

    You can try something like this, based on the RijndaelManaged Class MSDN article that I also recommend you to read.

    var plainText = "This will be encrypted.";
    var aesAlg = new RijndaelManaged();
    aesAlg.Key = new byte[32] { 118, 123, 23, 17, 161, 152, 35, 68, 126, 213, 16, 115, 68, 217, 58, 108, 56, 218, 5, 78, 28, 128, 113, 208, 61, 56, 10, 87, 187, 162, 233, 38 };
    aesAlg.IV = new byte[16] { 33, 241, 14, 16, 103, 18, 14, 248, 4, 54, 18, 5, 60, 76, 16, 191};
    ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);
    
    msEncrypt = new MemoryStream();
    using (CryptoStream csEncrypt = new CryptoStream(msEncrypt, encryptor, CryptoStreamMode.Write)) {
        using (StreamWriter swEncrypt = new StreamWriter(csEncrypt)) {
            swEncrypt.Write(plainText);
        }
    }
    
    return msEncrypt.ToArray();
    
    0 讨论(0)
提交回复
热议问题