static public string CalcHash(string data) { string normalized = Regex.Replace(data, "(?<!\r)\n", "\r\n"); byte[] binData = Encoding.UTF8.GetBytes(normalized); byte[] result = VirgilHash.Sha256().Hash(binData); return(Convert.ToBase64String(result)); }
public static ServerPath FromLocalPath(LocalPath localPath) { using (var virgilHash = VirgilHash.Sha256()) { var value = localPath.AsRelativeToRoot(); value = value.Replace('\\', '_'); value = value.Replace('/', '_'); value = value.ToLowerInvariant(); virgilHash.Start(); virgilHash.Update(Encoding.UTF8.GetBytes(value)); var hash = virgilHash.Finish(); var name = $"/{Base32Encoding.ToString(hash).Replace("=", string.Empty)}.virgil"; return(new ServerPath { Value = name.ToLowerInvariant() }); } }