【发布时间】:2011-09-15 23:26:34
【问题描述】:
Subversion 使用哪些算法(SHA1、MD5...)来检测数据未损坏? (例如磁盘故障)
【问题讨论】:
-
出于好奇,为什么要问?
-
我想确保所有数据都经过校验和防御任何硬件故障。
Subversion 使用哪些算法(SHA1、MD5...)来检测数据未损坏? (例如磁盘故障)
【问题讨论】:
如果您查看SVN 1.6 source code,您会发现源代码中提供了对 MD5 和 SHA-1 哈希函数的支持。看一下 chacksum.c 文件和下面的函数:
svn_checksum_t *
svn_checksum_create(svn_checksum_kind_t kind,
apr_pool_t *pool)
{
svn_checksum_t *checksum;
switch (kind)
{
case svn_checksum_md5:
case svn_checksum_sha1:
checksum = apr_pcalloc(pool, sizeof(*checksum) + DIGESTSIZE(kind));
checksum->digest = (unsigned char *)checksum + sizeof(*checksum);
checksum->kind = kind;
return checksum;
default:
return NULL;
}
}
【讨论】:
对于当前版本 (1.8.x),svn info 显示的校验和是 SHA-1,即如果文件未被修改,sha1sum {file} 应该与 svn info 中的校验和匹配。
【讨论】: