В C # возможно ли получить хеш из байтового массива, который является безопасным для имени файла? - PullRequest
2 голосов
/ 13 мая 2011

У меня есть необходимость хэшировать содержимое файла (чтобы получить уникальное значение, основанное на содержимом файла), а затем записать файл в файловую систему, названную по имени этого хэша.

Возможно ли это? Я сделал это с помощью SHA1, но в результирующем хеше получили символы, которые не были безопасны для файловой системы (косые черты, двоеточия и т. Д.).

1 Ответ

3 голосов
/ 13 мая 2011
var originalBytes = Encoding.ASCII.GetBytes(data);
var hashedBytes = Hasher.ComputeHash(originalBytes);

var builder = new StringBuilder();
foreach (Byte hashed in hashedBytes)
    builder.AppendFormat("{0:x2}", hashed);

return builder.ToString();

это в основном эквивалент того, что делает git

...