c# - 在 C# 中计算 git blob 哈希
问题描述
我正在尝试使用以下方法计算文件的 sha1。结果与“git ls-tree HEAD”报告的结果不同。我的代码有什么问题?
static public string ComputeSha1()
{
//"blob " + <size_of_file> + "\0" + <contents_of_file>
var content = File.ReadAllBytes(@"c:\projects\myproj\Word.docx");
var contentLength = Encoding.UTF8.GetByteCount(Encoding.UTF8.GetString(content));
var blob = "blob " + contentLength + "\0" + Encoding.UTF8.GetString(content);
using (SHA1 sha1 = SHA1.Create())
{
byte[] bytes = sha1.ComputeHash(Encoding.UTF8.GetBytes(blob));
StringBuilder builder = new StringBuilder();
for (int i = 0; i < bytes.Length; i++)
{
builder.Append(bytes[i].ToString("x2"));
}
return builder.ToString();
}
}
解决方案
推荐阅读
- css - Boostrap 4 中的嵌套 CSS 失败
- php - 通过循环创建字段并使用 vars - WordPress Customizer
- azure - 创建 Azure 应用服务时的 2 个订阅“Microsoft Azure”和“按需付费”,选择哪一个来托管共享点远程事件接收器
- html - 容器流体中的 d-flex 类,使其内部的 h1 更小
- code-composer - 无法运行任何 eclipse 命令从命令行导入或构建项目 Code Composer Studio v9.0.0
- c++ - CRTP接口:实现中的不同返回类型
- javascript - 无法访问 React js 组件的传递值
- apache-flink - MapState 不会在 Flink java 中使用 EventTimeSessionWindows 存储上一个会话
- python - 如何使我的 Label Tkinter 元素显示?
- python - 如何从网站下载多个 gif 并将其存储到我的目录中?