我正在尝试构建一个小程序,可以发现是否使用DSA签名算法访问或修改了文件/文件.
我将给你这个小例子代码来描述这个问题.假设我们有一个文件c:\ Temporary\Temp.txt.我们的程序中有2个按钮.当我们点击第一个按钮时,我们会在文件名和上一次访问时间上创建一个数字签名.我们还导出参数并保存它们.在第二个按钮上单击,我们使用之前导出的参数在同一文件上重新创建签名,并将新签名与之前的签名进行比较.
这里的问题是程序(总是)给我一个结果,文件已被访问!!!!
我使用调试器来查找问题,并发现2个button_click事件之间的所有变量值都是相同的,并且在签名过程中会出现差异.
你能告诉我问题出在哪里吗?这是代码:
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;
using System.Security.Cryptography;
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        string filename = @"C:\Temporary\Temp.txt";
        DSAParameters parameters;
        byte[] data_to_sign, signature;
    public Form1()
    {
        InitializeComponent();
    }
    private void Form1_Load(object sender, EventArgs e)
    {
    }
    private void Sign_button_Click(object sender, EventArgs e)
    {
        FileInfo f_info = new FileInfo(filename);
        string file_information = f_info.FullName …