SHA1 дает разные результаты в разных версиях .netC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 SHA1 дает разные результаты в разных версиях .net

Сообщение Anonymous »

Я использую SHA1 в библиотеке, написанной в C# net6.0, чтобы обнаружить изменения и сравнить тексты и другие типы объектов, аналогично использованию SHA1 в GIT. Это требование (например, в GIT), мы можем проверить изменения и сравнить различные объекты через долгое время (возможно,). Следовательно, мы должны быть в состоянии поверить, что расчеты SHA1 являются стабильными, даже если были созданы новые версии нашего приложения, вероятно, с более новыми версиями .net. < /P>
Вот моя проблема: Я ожидал, так как SHA1 существует некоторое время, что вычисленные значения хеш будут такими же, как сейчас, когда я обновил нашу библиотеку до Net8. Но удивительно, но они дают разные значения для одного и того же ввода в Net8 по сравнению с Net6, и даже другие значения в Net9! при обновлении других частей приложения до новых сетевых версий. Но это не работает: если я использую библиотечную сборку на Net6 с помощью, например, консольного приложения на Net8, значения хэша SHA1 рассчитываются с помощью Net8-версии SHA1. Очевидно, невозможно обновить приложение на более новые версии .net, не нарушая требования относительно стабильности в расчетах SHA1. < /P>
Мой вопрос: есть ли решение этой проблемы, предпочтительно способ Чтобы заставить SHA1-Calculations, доставленные библиотекой для использования версии библиотеки .NET, а не версии клиентов .NET ?NET? >
using System.Security.Cryptography;

public static class Library {

private static SHA1 sha1;

public static byte[] GetSha1(byte[] data) {
return sha1.ComputeHash(data);
}

static Library() {
sha1 = SHA1.Create();
}

// More code ...
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... ons-of-net
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»