- 主题:计算文件md5的问题
均匀分割的文件,如果想计算合并后文件的md5,是不是不用
把文件合并起来再进行计算?
如果不是均匀分割的就计算起来困难,不知道理解的对吗?
--
FROM 116.231.60.*
把文件顺序读出来喂给md5的函数
你合并了也是这个操作
本质上md5操作的也不是文件
【 在 javame 的大作中提到: 】
: 均匀分割的文件,如果想计算合并后文件的md5,是不是不用
: 把文件合并起来再进行计算?
: 如果不是均匀分割的就计算起来困难,不知道理解的对吗?
--
FROM 101.46.158.*
分割的不均匀是不是就实现起来困难一些?
【 在 slowaction (slowaction) 的大作中提到: 】
: 把文件顺序读出来喂给md5的函数
: 你合并了也是这个操作
: 本质上md5操作的也不是文件
: ...................
--
FROM 116.231.60.*
md5是读取文件内容来计算的,跟你分成几段没有关系
当然了,分段了的文件,操作起来稍微麻烦一点
--
FROM 111.205.43.*
可以分开算,不麻烦,不均匀分割也不麻烦。典型的hash函数api,比如openssl的EVP_Digest系列函数,都是递增式的
【 在 javame 的大作中提到: 】
: 均匀分割的文件,如果想计算合并后文件的md5,是不是不用
: 把文件合并起来再进行计算?
: 如果不是均匀分割的就计算起来困难,不知道理解的对吗?
: ...................
--
修改:milksea FROM 114.249.197.*
FROM 114.249.197.*
我懂了,谢谢!
【 在 milksea (肥了,又肥了 >>>_<<<) 的大作中提到: 】
: 可以分开算,不麻烦,不均匀分割也不麻烦。典型的hash函数api,比如openssl的EVP_Digest系列函数,都是递增式的
--
FROM 116.231.60.*
【 在 javame 的大作中提到: 】
: 均匀分割的文件,如果想计算合并后文件的md5,是不是不用
: 把文件合并起来再进行计算?
: 如果不是均匀分割的就计算起来困难,不知道理解的对吗?
一个MD5context,依次计算各个文件是可以的。
void MD5_Init(MD5_CTX *c);
void MD5_Update(MD5_CTX *c, const void *data, unsigned long len);
void MD5_Final(unsigned char *md, MD5_CTX *c);
unsigned char *MD5(const unsigned char *d, unsigned long n, unsigned char *md);
void MD5_Transform(MD5_CTX *c, const unsigned char *b);
依次不断地使用MD5_Update,最后MD5_Final。
--
修改:ylh1969 FROM 221.221.55.*
FROM 221.221.55.*
我明白了,谢谢
【 在 ylh1969 (没谱) 的大作中提到: 】
: 一个MD5context,依次计算各个文件是可以的。
: void MD5_Init(MD5_CTX *c);
: void MD5_Update(MD5_CTX *c, const void *data, unsigned long len);
: ...................
--
FROM 58.37.38.*