hash函数:是不可逆的函数,它的输入可以是任意长度的字节流。它的输出是固定大小的,hash函数的作用就是给你的文件产生一个摘要,它是独一无二的。

例如:y=f(x) x代表输入  y代表输出   输入x求y容易  单输入y求x就难了

我们常见的hash函数MD5和SHA1 当然和有其他的比较少见。

DM5 :通常为128个bits  16个字节

sha1:通常为160bits     一个字节8个bits  20个字节

[root@redhat ~]# md5sum /etc/passwd    //linux下也有命令来求文件md5的值
c79a0c2c792891374595009e6155435c  /etc/passwd

[root@redhat ~]# openssl dgst -md5 /etc/passwd
MD5(/etc/passwd)= c79a0c2c792891374595009e6155435c

[root@redhat ~]# openssl dgst -sha1 /etc/passwd
SHA1(/etc/passwd)= b4e99419a91a3908e5e5c9c07a0d91c408c1a008

[root@redhat ~]# sha1sum /etc/passwd
b4e99419a91a3908e5e5c9c07a0d91c408c1a008  /etc/passwd

-c 参数 给输出的hash值以:隔开

[root@redhat ~]# openssl  dgst -sha1 -c /etc/passwd
SHA1(/etc/passwd)= b4:e9:94:19:a9:1a:39:08:e5:e5:c9:c0:7a:0d:91:c4:08:c1:a0:08

同样也可以使用md5校验文件的完整性,文件的一个字节变了,hash值就会发生天翻地覆的变化。

通常一些官方的网站把软件包发布时都会发布MD5和sha1值,防止别人篡改软件包。

[root@redhat opt]# cat txt
hello world!
[root@redhat opt]# md5sum txt
c897d1410af8f2c74fba11b1db511e9e  txt

[root@redhat opt]# cat txt
hollo world!
[root@redhat opt]# md5sum txt
ada39606d10543a059d139d1debb6a37  txt

<Openssl下hash函数>的更多相关文章

  1. 简单物联网:外网访问内网路由器下树莓派Flask服务器

    最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...

  2. 利用ssh反向代理以及autossh实现从外网连接内网服务器

    前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...

  3. 外网访问内网Docker容器

    外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...

  4. 外网访问内网SpringBoot

    外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...

  5. 外网访问内网Elasticsearch WEB

    外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...

  6. 怎样从外网访问内网Rails

    外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...

  7. 怎样从外网访问内网Memcached数据库

    外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...

  8. 怎样从外网访问内网CouchDB数据库

    外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...

  9. 怎样从外网访问内网DB2数据库

    外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...

  10. 怎样从外网访问内网OpenLDAP数据库

    外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...

随机推荐

  1. js---倒计时的自动跳转.html

    ============================================================================== 倒计时的自动跳转.html <!DO ...

  2. angular项目线上地址跳转或刷新报错的解决

    引用地址:https://blog.csdn.net/qq_35415307/article/details/80707463 本地ng项目没问题,到了线上跳转刷新都会报404错误,相信这个问题每个做 ...

  3. 通过DBCC整理Sqlserver数据库表索引碎片

    昨天检查了一张效率极慢的表,两年多没有维护,逻辑扫描碎片高达99.%,于是开始对这个表进行重点跟踪和记录日志.今天用DBCC SHOWCONTIG WITH TABLERESULTS 命令检查了一下所 ...

  4. openStack kvm 虚拟机CPU颗粒化控制

    前一篇理解cpu topology对CPU Topology进行了学习总结,这里想总结下OpenStack下vCPU与pCPU常用的的绑定方式. 在尝试这些绑定之前,尤其是处理NUMA架构时还是建议看 ...

  5. js插件库+bootstrap

    1.Chart.js 官网地址:http://chartjs.cn/ 2.优秀的bootstrap模板推荐 官网地址:http://bootswatch.com 3.wow+animate+js插件库 ...

  6. assert.strictEqual()

    assert.strictEqual(actual, expected[, message]) 使用全等运算符(===)测试 actual 参数与 expected 参数是否全等. // 格式 ass ...

  7. GET POST区别不同情况

    相信大家在面试的时候经常会被问到:GET与POST有什么区别吧?你是怎么回答的呢?POST比GEt安全?GET有URL的长度限制而POST没有或者很大?GET通过URL或者Cookie传参数,POST ...

  8. supervisor启动worker源码分析-worker.clj

    supervisor通过调用sync-processes函数来启动worker,关于sync-processes函数的详细分析请参见"storm启动supervisor源码分析-superv ...

  9. Spring入门第六课

    XML配置里的Bean自动装配 Spring IOC容器可以自动装配Bean.需要做的仅仅是在<bean>的autowire属性里指定自动装配的模式 ByType(根据类型自动装配):若I ...

  10. Go:定时执行任务time.sleep和time.tick的优劣

    golang 写循环执行的定时任务,常见的有以下三种实现方式:1.time.Sleep方法: for { time.Sleep(time.Second) fmt.Println("我在定时执 ...