小编Ahd*_*Dbn的帖子

在DSA密码服务提供商中使用相同密钥签署相同数据时的结果不同

我正在尝试构建一个小程序,可以发现是否使用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 …
Run Code Online (Sandbox Code Playgroud)

c# dsa

9
推荐指数
1
解决办法
480
查看次数

标签 统计

c# ×1

dsa ×1