首页 > 其他分享 >Serilog 日志加密

Serilog 日志加密

时间:2023-06-13 15:13:34浏览次数:36  
标签:aes 加密 string Serilog IV Key 日志 public

1.安装Serilog.Sinks.File Nuget包

2.重写FileLifecycleHooks(使用加密流)或者重写ITextFormatter在里面加密

public class EncryLifecycleHooks : FileLifecycleHooks
    {
        /// <summary>
        /// 是否加密
        /// </summary>
        public bool IsEncryption { get; set; }

        public string Key { get; set; } = "125/*/056asdddd7d8d4d5d6d490****";


        public string IV { get; set; } = "iv12345678901234";

        public EncryLifecycleHooks(bool isEncryption, string key = "", string iV = "")
        {

            this.IsEncryption = isEncryption;
            if (!string.IsNullOrEmpty(key) && !string.IsNullOrEmpty(iV))
            {
                this.Key = key;
                this.IV = iV;
            }
        }

        public override void OnFileDeleting(string path)
        {
            base.OnFileDeleting(path);

        }

        public override Stream OnFileOpened(string path, Stream underlyingStream, Encoding encoding)
        {

            if (IsEncryption)
            {
                Aes aes = Aes.Create();
                // 设置加密密钥和初始化向量
                aes.Key = Encoding.UTF8.GetBytes(Key);
                aes.IV = Encoding.UTF8.GetBytes(IV);
                aes.Mode = CipherMode.ECB; // 使用适当的加密模式
                aes.Padding = PaddingMode.Zeros; // 使用适当的填充模式
                // 创建加密流
                CryptoStream cryptoStream = new CryptoStream(underlyingStream, aes.CreateEncryptor(), CryptoStreamMode.Write);
                return cryptoStream;
            }
            else
            {
                return base.OnFileOpened(path, underlyingStream, encoding);
            }
        }
    }

  

标签:aes,加密,string,Serilog,IV,Key,日志,public
From: https://www.cnblogs.com/cyj0923/p/17475153.html

相关文章

  • 快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)
    一、快速了解常用日志技术(JCL、Slf4j、JUL、Log4j、Logback、Log4j2)二、log4j2配置文件log4j2.xml文章目录一、简介二、日志门面三、SpringBoot使用Log4j2进行日志输出同步日志1、排除logback日志、导入log4j2依赖2、导入自定义log4j2.xml配置文件3.基础log4j2.xml配置文件异......
  • nginx日志切割
    日志切割(shell脚本)nginx日志默认是不切割的,网站运行久了自然生成大量日志,导致单文件的处理,太麻烦,因此工作里一般定期切割,一般按天切割。-rw-r--r--1rootroot2.1GMay813:57front_access.log 先纯手动的去切割日志,备份日志1.给nginx进程发送信号,让nginx重新......
  • 脚本日志记录
    functionlog(){echo>&2-e"[$(date+"%Y-%m-%d%H:%M:%S")]${1-}"}functiondie(){localmsg=$1localcode=${2-1}#Bashparameterexpansion-defaultexitstatus1.Seehttps://wiki.bash-hackers.org......
  • ELK分析Nginx日志和可视化展示
    ELK分析Nginx日志和可视化展示JAVA编程Linux学习 2023-06-0508:35 发表于山东收录于合集#nginx5个#nginx日志可视化1个#nginx日志1个一、概述使用ELK收集nginxaccess日志,利用Grafana做出一套可视化图表 二、环境准备环境说明操作系统:centos7.6docker......
  • Linux日志切割神器logrotate原理介绍和配置详解
    1、原理介绍create这也就是默认的方案,可以通过create命令配置文件的权限和属组设置;这个方案的思路是重命名原日志文件,创建新的日志文件。详细步骤如下:重命名正在输出日志文件,因为重命名只修改目录以及文件的名称,而进程操作文件使用的是inode,所以并不影响原程序继续输出日志......
  • 【更新日志 v3.5.1】WRITE-BUG数字空间
    保存草稿功能失效文件贴标签功能失效⚙功能优化圈子排序优化✅v3.4.1        更新日志        2023年4月11日......
  • 加密工具类
    packagecom.yashi.common.utils;importjavafx.util.Pair;importjavax.crypto.BadPaddingException;importjavax.crypto.Cipher;importjavax.crypto.IllegalBlockSizeException;importjavax.crypto.spec.SecretKeySpec;importjava.io.ByteArrayInputStream;imp......
  • 开源日志平台GrayLog5.1.2一键安装脚本
    开源日志平台GrayLog5.1.2一键安装脚本原创 yuanfan2012 WalkingCloud 2023-06-1100:35 发表于浙江收录于合集#Linux学习笔记323个#CentOS7141个#Graylog40个#运维安全38个#开源64个GrayLog5.1.2一键安装脚本在原文章的基础下制作了此一键安装脚本CentO......
  • ELK分析Nginx日志和可视化展示
    ELK分析Nginx日志和可视化展示JAVA编程Linux学习 2023-06-0508:35 发表于山东收录于合集#nginx5个#nginx日志可视化1个#nginx日志1个一、概述使用ELK收集nginxaccess日志,利用Grafana做出一套可视化图表 二、环境准备环境说明操作系统:centos7.6docker......
  • 13、镜像仓库Habor的安装、高可用、https加密
    Docker之分布式仓库Harbor安装Harbor下载地址:https://github.com/vmware/harbor/releases安装要求:4CPUMEM:8GBDISK:160GB环境准备:四台主机两台主机harbor服务器,地址10.0.0.101|102两台主机harbor客户端上传和下载镜像一键安装docker、docker-compose、harbor脚本#!/bi......