Алгоритм контрольной суммы Subversion - PullRequest
4 голосов
/ 16 сентября 2011

Какие алгоритмы (SHA1, MD5 ...) Subversion использует для обнаружения того, что данные не повреждены? (например, из-за сбоя диска)

Ответы [ 2 ]

6 голосов
/ 16 сентября 2011

Если вы посмотрите на исходный код SVN 1.6 , вы обнаружите, что поддержка как хеш-функций 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 голос
/ 31 октября 2014

Для текущей версии (1.8.x) контрольная сумма, отображаемая с svn info, равна SHA-1, то есть sha1sum {file} должна соответствовать контрольной сумме в svn info, если файл не был изменен.

...