MAC系统和Linux系统下md5获取方法

这篇具有很好参考价值的文章主要介绍了MAC系统和Linux系统下md5获取方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前一段时间在开发一个比较复杂的shell脚本,目标之一是希望能够拷贝到任何台机器上都能用(当然不包括win),所以脚本不会用到很多需要安装的命令,所使用的命令基本都是系统安装时候就自带的。我的开发环境是mac,本以为很多基础的命令mac和linux应该都一样,没想到过程中还是遇到不少有细微差别的地方。字符串计算MD5就是其中之一,这篇文章简单记录一下两个系统在计算MD5时的差异,其他的差异以后有机会再聊

Linux:md5sum

命令说明

linux下获取md5的命令是md5sum,下面是他的帮助文件。从帮助文档看,linux的md5sum命令主要是用来计算文件md5值的,一段文本的计算只是附带的一个功能

Usage: md5sum [OPTION]... [FILE]...
Print or check MD5 (128-bit) checksums.
With no FILE, or when FILE is -, read standard input.

  -b, --binary         read in binary mode
  -c, --check          read MD5 sums from the FILEs and check them
      --tag            create a BSD-style checksum
  -t, --text           read in text mode (default)
  Note: There is no difference between binary and text mode option on GNU system.

The following four options are useful only when verifying checksums:
      --quiet          don't print OK for each successfully verified file
      --status         don't output anything, status code shows success
      --strict         exit non-zero for improperly formatted checksum lines
  -w, --warn           warn about improperly formatted checksum lines

      --help     display this help and exit
      --version  output version information and exit

文本输出

测试文本输出md5

>> echo "abcd"|md5sum
f5ac8127b3b6b85cdc13f237c6005d80  -

这和网上工具算的不一样,原因是echo会自动加一个换行符,可以使用-n参数不输出这个换行符

不输出换行符再试一下

>> echo -n "abcd"|md5sum
e2fc714c4727ee9395f324cd2e7f331f  -

这次和工具算出来一样了

文件校验

测试对一个文件进行校验,最简单的命令如下

>> md5sum Document.pdf 
20b1f7a03886e2acb4a1127b46f32428  Document.pdf

会输出文件的md5值和文件名
配合find命令可以快速查看一个目录下所有文件的md5

>> find ./|xargs md5sum
md5sum: ./: Is a directory
0f8cd5b583b41d39b31ead87aa0e58fe  ./BeanContextChildComponentProxy.java
b2125086af1459eb370b3636bc74e07e  ./BeanContextServices.java
c14ec136adc6c9732639e38389b64031  ./BeanContextServiceProvider.java
9c052aec2e7e62a90b2be9cbe78df45a  ./BeanContextChild.java
e9545230bde1ccef1cee14a5b44c3d37  ./BeanContextServicesSupport.java
3f52d9ce3ea8c71600a3984da10afaff  ./BeanContextProxy.java
8f3843de53a38dfb35557be11d49dc88  ./BeanContextContainerProxy.java
9e95824832d9a6a6278c169df77db967  ./BeanContextSupport.java
3915c59e175dea7a84fb5a0ff00dd28e  ./BeanContextMembershipEvent.java
205ac68eef169a48858484f83991cdc9  ./BeanContext.java
7df33512aa2b57677b6873d5f94ef306  ./BeanContextServicesListener.java
c4cebd9f0b4d6247f7cd65707fda3f44  ./BeanContextServiceRevokedEvent.java
e9b6ce291daaf950bdff0b652e0f591c  ./BeanContextMembershipListener.java
38512603934c9a8812392fe44422b898  ./BeanContextChildSupport.java
8e95864a4164640351f851062724c3f3  ./BeanContextEvent.java
4f55377474508514123b3625b8ffe6de  ./BeanContextServiceAvailableEvent.java
f06a414d8bdf87548feb954b970d5026  ./BeanContextServiceProviderBeanInfo.java
86587d95875f3616d519147378dd8797  ./BeanContextServiceRevokedListener.java

我们有了md5值那如何做校验呢
让我们先把md5sum的结果写入一个文件

>> md5sum Document.pdf >> check.out
>> cat check.out 
20b1f7a03886e2acb4a1127b46f32428  Document.pdf

使用-c参数来进行校验

>> md5sum -c check.out 
Document.pdf: OK

可以看到校验成功,这里注意,-c后面直接跟校验文件,程序是根据校验文件中保存的文件名来以当前执行目录为准进行寻找的,所以要保证这个文件对于执行目录的相对路径正确,或者改成绝对路径也行

>> cat check.out 
20b1f7a03886e2acb4a1127b46f32428  /root/Document.pdf
>> md5sum -c check.out 
/root/Document.pdf: OK

如果是多个文件呢,只要在校验文件中保存多个文件的校验结果即可

>> echo "abc" >> test.txt
>> md5sum test.txt >> check.out 
>> cat check.out 
20b1f7a03886e2acb4a1127b46f32428  Document.pdf
0bee89b07a248e27c83fc3d5951213c1  test.txt
>> md5sum -c check.out
Document.pdf: OK
test.txt: OK
>> echo "abc" >> test.txt
>> md5sum -c check.out
Document.pdf: OK
test.txt: FAILED
md5sum: WARNING: 1 of 2 computed checksums did NOT match

如果有校验失败的文件,会提示有几个失败了

MAC:md5

命令说明

mac下获取md5的命令是md5,下面是他的帮助文件。mac下的md5命令就明显提升了string计算md5值的地位,在概要里面明确说明了string的用法

NAME
     md5 – calculate a message-digest fingerprint (checksum) for a file

SYNOPSIS
     md5 [-pqrtx] [-s string] [file ...]

     -s string
             Print a checksum of the given string.
     -p      Echo stdin to stdout and append the checksum to stdout.
     -q      Quiet mode - only the checksum is printed out.  Overrides the -r option.
     -r      Reverses the format of the output.  This helps with visual diffs.  Does nothing when combined with the -ptx options.
     -t      Run a built-in time trial.
     -x      Run a built-in test script.

文本输出

测试输出md5,用管道的话,也无须-s命令

>> echo "abcd"|md5
f5ac8127b3b6b85cdc13f237c6005d80

echo有同样的补换行符机制

不输出换行符试一下

>> echo -n "abcd"|md5
e2fc714c4727ee9395f324cd2e7f331f

一样了

注意:mac下获取的结果格式和linux下有所不同

文件校验

让我们在mac下同样进行文件校验的测试,最简单的命令如下

>> md5 web.zip 
MD5 (web.zip) = 73664fc49bc0ae831f73fd58530f690c

格式和linux下面差别还挺大,也会输出文件的md5值和文件名
不过使用-r参数之后就可以获得和linux下相同格式的输出了

>> md5 -r web.zip  
73664fc49bc0ae831f73fd58530f690c web.zip

配合find命令也可以快速查看一个目录下所有文件的md5

>> find ./|xargs md5
md5: ./: Is a directory
MD5 (.//BackendException.java) = 693d6290c249190f53bf2c4189df3ddd
MD5 (.//UnknownDatabaseException.java) = 0ecdbba3648a6d025b59577ecf2b1e74
MD5 (.//TableModifyInTransactionException.java) = a21eb795866bc59aadc79c7c3f7e94e8
MD5 (.//NoDatabaseSelectedException.java) = 9fda10bd220ed214c1954a6713022a32

我们有了md5值那如何做校验呢
很遗憾,mac下的md5命令并没有类似md5sum的校验快捷功能
不过可以通过shell脚本来进行比对,就不在此举例了

MAC系统和Linux系统下md5获取方法
欢迎关注公众号,共同交流,共同进步文章来源地址https://www.toymoban.com/news/detail-407678.html

到了这里,关于MAC系统和Linux系统下md5获取方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Android studio获取证书的MD5/SHA1/SHA-256以及公钥的方法

    Android studio 获取MD5 SHA1 SHA-256 值命令:./gradlew signingReport Android studio 获取公钥:keytool -export -alias key0 -keystore key.keystore -file zhengshu.cer 一、获取MD5 SHA1 SHA-256 值 在Android项目中执行命令:./gradlew signingReport 然后以上操作执行完成之后,搜索你的证书名称,找到以下数据: 二、获

    2024年02月03日
    浏览(76)
  • MD5算法:利用python进行md5 hash值的获取

    MD5,即信息摘要算法,英文为MD5 Message-Digest Algorithm,是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),也叫散列值,用于确保信息传输完整一致。 它可以从一个字符串或一个文件中按照一定的规则生成一个特殊的字符串,这个特殊的

    2024年02月07日
    浏览(37)
  • java获取文件md5值

    给客户交付的文件,客户需要验证md5值,客户java语言,记录下实现过程,很简单。 请替换 path/to/your/file.txt 为你实际文件的路径。这个 Java 代码会读取文件内容并生成相应的 MD5 值。

    2024年01月17日
    浏览(42)
  • Android 应用获取签名MD5

     生成Android平台签名证书(.keystore)生成指南 根据uniapp官方的文档生成签名后,查看当前证书信息: 会输出以下格式信息: 会发现证书指纹下没有md5的信息 (可能是java的sdk版本原因导致的) 解决:输入以下命令可获取md5值 keytool -exportcert -keystore ync.keystore | openssl dgst -md5   温

    2024年02月12日
    浏览(34)
  • Java获取文件的MD5

    主要是通过读取文件的字符流,然后赋值给MessageDigest对象,最后将文件流转换成16进制的字符串。

    2024年02月16日
    浏览(41)
  • App备案——获取公钥和MD5签名

    阿里云App备案入口:https://beian.aliyun.com/pcContainer/myorder 当我们进行App备案时,需要填写App的公钥和MD5签名信息,公钥和 MD5 值可以通过安卓开发工具、Keytool、Jadx-GUI 等多种工具获取,本文以 jadx-gui 为例。 特征信息名词 说明 (安卓 Android)包名 APP 包名是一个应用程序的唯一

    2024年01月18日
    浏览(39)
  • android上架备案公钥和md5获取工具

    最近很多公司上架遇到了一个问题,就是要提供app的备案证明,现在android上架都需要备案了,但是我们的证书都是通过工具生成的,哪里知道公钥和md5那些东西呢?无论安卓备案还是ios备案都需要提供公钥和md5。 包括ios的备案也是,找了很多教程,都是叫我们通过代码来读

    2024年02月09日
    浏览(45)
  • 安卓keytool获取不到签名文件的MD5

    目前通过 keytool -list -v -keystore xxx.jks 这种方法获取签名的md5时,只能显示SHA1和SHA256,不显示md5: 解决办法: 1.先将自己的keystore配置进app下的build.gradle中: 2.打开AndroidStudio的Gradle,找到Tasks-android-signingReport,双击: 找到Config为release,Alias与你签名文件的别名一致的信息,即可

    2024年02月11日
    浏览(43)
  • APP备案(Android) - 获取签名证书公钥、MD5

    因为近期刚针对各应用平台对APP备案时间节点要求进行了统一整理,然后隔天就被要求提供一下app相关的的公钥和MD5,虽然很快就解决了这个事情,但忍不住又稍微衍生了一下,但行小步,莫问远方吧 关联Blog APP备案(Android) - 各应用平台对APP备案时间节点要求 APP备案(Android

    2024年02月04日
    浏览(55)
  • Android/iOS APP备案- MD5、公钥获取

    应工业和信息化部(工信部)要求, Android/iOS APP需要进行备案, 各备案平台要求填写应用APP的MD5、公钥、SHA-1值等。 以下通过Android、Windows、MacOS三个平台详细介绍获取方式。 APP备案流程:  Android/iOS APP备案流程 1、首先将需要获取MD5、公钥值的APP安装到Android手机; 2、在手机自带的

    2024年02月03日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包