Добрый день.
Спасибо большое за подобную библиотеку и Ваш труд. Хотелось бы внести немного помощи.
В Md5HashFunction.cs, HashFunctionBase.cs и в ByteUtility.cs
используется устаревшая логика для создания MD5 hash на основе строки.
Примерно с .NET 5 появились MD5.HashData и Convert.ToHexString
Что позволяет делать примерно так:
public override string Invoke(RenderSettings settings, string argument1) {
var buffer = Encoding.UTF8.GetBytes(argument1);
Span<byte> hash = stackalloc byte[MD5.HashSizeInBytes];
MD5.HashData(buffer, hash);
return Convert.ToHexString(hash);
}
На сколько это лучше?
| Method |
Size |
Mean |
Error |
StdDev |
Rank |
Gen0 |
Allocated |
| Md5WithStackallockAndStatic |
10000 |
392.1 ns |
7.55 ns |
7.76 ns |
1 |
0.0210 |
88 B |
| Md5WithStackallockAndStatic |
10 |
394.0 ns |
4.49 ns |
3.98 ns |
1 |
0.0210 |
88 B |
| Md5WithStackallockAndStatic |
50 |
394.9 ns |
5.04 ns |
4.21 ns |
1 |
0.0210 |
88 B |
| Md5WithStackallockAndStatic |
100 |
395.3 ns |
3.47 ns |
3.25 ns |
1 |
0.0210 |
88 B |
| Md5WithStackallockAndStatic |
1000 |
398.1 ns |
6.02 ns |
5.03 ns |
1 |
0.0210 |
88 B |
| Md5WithUsing |
10000 |
1,140.0 ns |
10.83 ns |
9.60 ns |
2 |
0.2499 |
1048 B |
| Md5WithUsing |
50 |
1,150.3 ns |
8.98 ns |
7.01 ns |
2 |
0.2499 |
1048 B |
| Md5WithUsing |
1000 |
1,152.3 ns |
14.84 ns |
13.16 ns |
2 |
0.2499 |
1048 B |
| Md5WithUsing |
100 |
1,156.4 ns |
22.71 ns |
24.30 ns |
2 |
0.2499 |
1048 B |
| Md5WithUsing |
10 |
1,156.8 ns |
8.38 ns |
7.84 ns |
2 |
0.2499 |
1048 B |
Если нужна подробная информация, тесты и бенчмарки:
https://github.com/Kataane/MD5Hash
Добрый день.
Спасибо большое за подобную библиотеку и Ваш труд. Хотелось бы внести немного помощи.
В Md5HashFunction.cs, HashFunctionBase.cs и в ByteUtility.cs
используется устаревшая логика для создания MD5 hash на основе строки.
Примерно с .NET 5 появились MD5.HashData и Convert.ToHexString
Что позволяет делать примерно так:
На сколько это лучше?
Если нужна подробная информация, тесты и бенчмарки:
https://github.com/Kataane/MD5Hash