19 lines
1.1 KiB
C#
19 lines
1.1 KiB
C#
using System.Security.Cryptography;
|
|
|
|
namespace TeleWave.Application.Broadcast.Bumpers;
|
|
|
|
/// <summary>
|
|
/// Детерминированный id ассета-превью для подблока заставки: один и тот же на каждый повторный рендер,
|
|
/// поэтому предпросмотр перезаписывает единственный каталог assets/{id}, а не плодит новые.
|
|
/// </summary>
|
|
public static class BumperPreview
|
|
{
|
|
/// <summary>
|
|
/// Свёртка id подблока в стабильный id превью. Не защита — просто способ получить из одного GUID
|
|
/// другой, воспроизводимо; берём SHA-256 и первые 16 байт, чтобы в коде не оставалось вызовов
|
|
/// сломанных хеш-функций, которые потом приходится каждый раз объяснять сканерам.
|
|
/// </summary>
|
|
public static Guid AssetId(Guid variantId) =>
|
|
new(SHA256.HashData(variantId.ToByteArray()).AsSpan(0, 16));
|
|
}
|