HmacSHA1Signature.cs 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright (C) Alibaba Cloud Computing
  3. * All rights reserved.
  4. *
  5. * 版权所有 (C)阿里云计算有限公司
  6. */
  7. using System;
  8. using System.Diagnostics;
  9. using System.Security.Cryptography;
  10. using System.Text;
  11. namespace Aliyun.OSS.Common.Authentication
  12. {
  13. internal class HmacSha1Signature : ServiceSignature
  14. {
  15. private static readonly Encoding Encoding = Encoding.UTF8;
  16. public override string SignatureMethod
  17. {
  18. get { return "HmacSHA1"; }
  19. }
  20. public override string SignatureVersion
  21. {
  22. get { return "1"; }
  23. }
  24. protected override string ComputeSignatureCore(string key, string data)
  25. {
  26. Debug.Assert(!string.IsNullOrEmpty(data));
  27. using (var algorithm = KeyedHashAlgorithm.Create(SignatureMethod.ToUpperInvariant()))
  28. {
  29. algorithm.Key = Encoding.GetBytes(key.ToCharArray());
  30. return Convert.ToBase64String(
  31. algorithm.ComputeHash(Encoding.GetBytes(data.ToCharArray())));
  32. }
  33. }
  34. }
  35. }