public void GetMd5Buffer_Test() { var stream = new MemoryStream(Encoding.UTF8.GetBytes("helloworld")); var buffer = Md5Util.GetMd5Buffer(stream); var actual = BitConverter.ToString(buffer).Replace("-", ""); Assert.Equal("FC5E038D38A57032085441E7FE7010B0", actual); }
/// <summary>计算头部的MD5 /// </summary> private void SetContentMd5(IRequest request) { //上传文件数据 if (request.ContentStream != null && !request.Headers.ContainsKey(Headers.CONTENT_MD5)) { if (request.ContentStream is MD5Stream stream1) { var stream = stream1.GetNonWrapperBaseStream(); var md5Buffer = Md5Util.GetMd5Buffer(stream); if (stream.CanSeek) { stream.Seek(0, SeekOrigin.Begin); } var contentMd5 = Convert.ToBase64String(md5Buffer); request.Headers.Add(Headers.CONTENT_MD5, contentMd5); //不包含内容 if (!request.Headers.ContainsKey(Headers.CONTENT_TYPE)) { request.Headers.Add(Headers.CONTENT_TYPE, Headers.DEFAULT_MIMETYPE); } } } }