32 lines
719 B
C#
32 lines
719 B
C#
using System.Security.Cryptography;
|
|
using NzbDrone.Common.Disk;
|
|
|
|
namespace NzbDrone.Common.Crypto
|
|
{
|
|
public interface IHashProvider
|
|
{
|
|
byte[] ComputeMd5(string path);
|
|
}
|
|
|
|
public class HashProvider : IHashProvider
|
|
{
|
|
private readonly IDiskProvider _diskProvider;
|
|
|
|
public HashProvider(IDiskProvider diskProvider)
|
|
{
|
|
_diskProvider = diskProvider;
|
|
}
|
|
|
|
public byte[] ComputeMd5(string path)
|
|
{
|
|
using (var md5 = MD5.Create())
|
|
{
|
|
using (var stream = _diskProvider.OpenReadStream(path))
|
|
{
|
|
return md5.ComputeHash(stream);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|