2014-08-30 20:40:21 +00:00
|
|
|
using System.Security.Cryptography;
|
|
|
|
using NzbDrone.Common.Disk;
|
|
|
|
|
|
|
|
namespace NzbDrone.Common.Crypto
|
|
|
|
{
|
2014-08-31 07:40:23 +00:00
|
|
|
public interface IHashProvider
|
|
|
|
{
|
|
|
|
byte[] ComputeMd5(string path);
|
|
|
|
}
|
|
|
|
|
|
|
|
public class HashProvider : IHashProvider
|
2014-08-30 20:40:21 +00:00
|
|
|
{
|
|
|
|
private readonly IDiskProvider _diskProvider;
|
|
|
|
|
2014-08-31 07:40:23 +00:00
|
|
|
public HashProvider(IDiskProvider diskProvider)
|
2014-08-30 20:40:21 +00:00
|
|
|
{
|
|
|
|
_diskProvider = diskProvider;
|
|
|
|
}
|
|
|
|
|
2014-08-31 07:40:23 +00:00
|
|
|
public byte[] ComputeMd5(string path)
|
2014-08-30 20:40:21 +00:00
|
|
|
{
|
|
|
|
using (var md5 = MD5.Create())
|
|
|
|
{
|
2015-01-22 22:12:35 +00:00
|
|
|
using (var stream = _diskProvider.OpenReadStream(path))
|
2014-08-30 20:40:21 +00:00
|
|
|
{
|
|
|
|
return md5.ComputeHash(stream);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2020-01-03 12:49:24 +00:00
|
|
|
}
|