Я использую Entity Framework (WebAPI / C # / VS2019) и использую приведенный ниже код для сохранения файла и отображения файла.
Сохранить код
Document document = new Document();
var plainTextBytes = System.Text.Encoding.UTF8.GetBytes(attachment_data); //attachment_data is string
document.document_content=plainTextBytes;//document_content is byte[]
db.Documents.Add(document);
db.SaveChanges();
Код ниже используется для отображения сохраненного файла
[Route("api/documents/download")]
[HttpGet]
public HttpResponseMessage Download(int documentid)
{
HttpResponseMessage result = new HttpResponseMessage(HttpStatusCode.OK);
var document = db.Documents.Where(e => e.id.Equals(documentid)).FirstOrDefault();
if (document != null)
{
var stream = new System.IO.MemoryStream(document.document_content);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType =
new System.Net.Http.Headers.MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = document.name
};
}
return result;
}
Сохранение файла и загрузка файла работает нормально. Вопрос в том, как зашифровать содержимое файла перед сохранением в базу данных? Я видел несколько SO-ссылок , но большинство методов принимают строку как ввод и строку как вывод. Не уверен, какой из них подойдет в этом сценарии.