Я использую 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
SHA1 дает разные результаты в разных версиях .net ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
Мобильная версия