-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Добрый день.
Спасибо большое за подобную библиотеку и Ваш труд. Хотелось бы внести немного помощи.
В 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
Metadata
Metadata
Assignees
Labels
No labels