数字签名错误「数字签名生成器」

2、一个服务可以供多个微信公众帐号的数字签名服务 在服务器端用 NodeJS 跑起一个数字签名生成服务,web端用ajax方式请求NodeJS服务获取数字签名信息 得到信息后...

单向散列函数

大家都知道指纹是我们一个唯一的存在,每一个指纹都是独一无二的,通过指纹可以判断出属于哪个人,破案中经常用到

在计算机处理的信息中,也会用到指纹,判断两条信息是否一直只要比对指纹是否相同就可以了

单向散列函数:SHA-1,SHA-2,SHA-3等等

注意:hash并不是加密

这个文件是真的吗?

我花了几个月的时间完成了一份系统软件,我保存在公司电脑上,下班回家,第二天,我突然发现电脑被人动过,那我怎么知道我完成的软件有没有被人修改过呢?有没有人操作我的电脑把我的软件修改了?

这样怎么保证我的软件的完整性呢? 这就需要到了单向散列函数

很多人都会想到,我把程序软件复制到u盘中,随身保存就能保证完整性了,但是大家知道,要是软件非常巨大,复制,保存以及比较都非常耗时,要是只保存软件的一个特征就比较方便了

这就是软件的指纹,我们使用一个函数计算出软件的指纹,直接保存这个指纹就可以了,每个软件的指纹都是独一无二的,这样只要对比指纹就知道软件是否被篡改了

计算散列函数值需要一个输入和产生一个输出,输入可以是一个文件,一个视频,一段程序等等,输入不限长度,无论是1bit1m1g,都会计算出固定长度的散列值

比如SHA-256为例,无论输入多少,产生的长度都是256bit(32字节)

这样由于散列值很短,所以很容易处理

单向散列函数的性质

根据任意长度的信息计算固定长度的散列值

快速计算散列值

消息不同散列值不同(ps:现在貌似有不同的消息有相同的散列值)

具备单向性(也就是通过散列值不能反算出消息来)

实际应用

检测软件是否篡改

基于口令的加密(密码+salt后再进行散列计算,存储后可以防止字典攻击)

消息认证码

数字签名

伪随机生成器

一次性口令

具体函数

MD4,MD5(已经不安全)

SHA-1,SHA-256,SHA-3(SHA-1不安全)

解决问题

防篡改

本文来自网络,不代表本站立场,转载请注明出处: http://www.fxqlsy.cn/news/74546.html
返回顶部