问题场景
最近在帮导师做横向,我想把整个项目环境放到服务器中,需要把一个很大的数据文件传到服务器,传上去很方便,但是涉及到文件的压缩上传和服务器内解压环节,不是太确定文件在本机和服务器的数据内容是否一致。
解决思路
可以利用md5算法,全称是Message-Digest Algorithm 5,即信息摘要算法。
md5算法有以下特点:
- 压缩性:任意长度的数据,算出的MD5值长度都是固定的。
- 容易计算:从原数据计算出MD5值很容易。
- 抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。
- 强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。
实现步骤
假定本机是windows环境,服务器为linux环境。
- 在本机上打开powershell( 一定得是powershell打开,不能是简单的cmd)
- 到需要检验是否一致的文件所在目录
- 输入
GetFile-Hash
+ 文件名,得到md5算法加密后的序列
- 在服务器上,到需要检验是否一致的文件所在目录
- 输入
sha256sum
+ 文件名,得到md5算法加密后的序列
- 对比本机和服务器上得到的md5加密序列,如果一模一样(忽略大小写),则数据内容是一致的,如果有任何地方存在不一样的,则数据内容不完全一致。