在linux系统
vim md5data # 打开文件
写入 abc 保存
md5sum md5Data 的计算值和openssl代码计算值不一样
原因在于linux文本文件末尾自动添加了换行
解决方法:
1. 重新vim打开 set binary 然后 :wq 保存 可以看到暂用3字节 之前是4个字节大小
2.用sublime 文本编译器 编写
备注: openssl MD5代码
MD5_CTX md5Ctx;
string data = "abc";
unsigned char md5Value[16];
char md5Str[33];
MD5_Init(&md5Ctx);
MD5_Update(&md5Ctx, data.c_str(), data.length());
MD5_Final((unsigned char *)&md5Value, &md5Ctx);
for (int i = 0; i < 16; i++)
{
if ((md5Value[i] & 0xf) <= 9){
md5Str[2 * i + 1] = (md5Value[i] & 0xf) + 48;
}
else {
md5Str[2 * i + 1] = (md5Value[i] & 0xf) + 87;
}
if ( ((md5Value[i] >> 4) & 0xf) <= 9){
md5Str[2 * i ] = ((md5Value[i] >> 4) & 0xf) + 48;
}
else {
md5Str[2 * i] = ((md5Value[i] >> 4) & 0xf) + 87;
}
}
md5Str[32] = 0;
cout << md5Str << endl;