Encrypt String in .NET Core

后端 未结 6 1953
Happy的楠姐
Happy的楠姐 2020-12-24 13:50

I would like to encrypt a string in .NET Core using a key. I have a client / server scenario and would like to encrypt a string on the client, send it to the server and decr

6条回答
  •  不知归路
    2020-12-24 14:15

    Here is a trivial sample without authentication:

    var text = "Hello World";
    var buffer = Encoding.UTF8.GetBytes(text);
    
    var iv = GetRandomData(128);
    var keyAes = GetRandomData(256);
    
    
    byte[] result;
    using (var aes = Aes.Create())
    {
        aes.Key = keyAes;
        aes.IV = iv;
    
        using (var encryptor = aes.CreateEncryptor(aes.Key, aes.IV))
        using (var resultStream = new MemoryStream())
        {
            using (var aesStream = new CryptoStream(resultStream, encryptor, CryptoStreamMode.Write))
            using (var plainStream = new MemoryStream(buffer))
            {
                plainStream.CopyTo(aesStream);
            }
    
            result = resultStream.ToArray();
        }
    }
    

    For key generation:

    private static byte[] GetRandomData(int bits)
    {
        var result = new byte[bits / 8];
        RandomNumberGenerator.Create().GetBytes(result);
        return result;
    }
    

提交回复
热议问题