当前位置:首页 > 网站运营杂谈 > 正文

什么是数字签名有什么用?一文看懂它的核心功能!

什么是数字签名有什么用?一文看懂它的核心功能!

搞懂数字签名,就是解决互联网上的“赖账”问题 搞数字签名这玩意儿,说白了,就是为了解决“赖账”和“被改动”这两个破事儿。以前我没当回事,觉得多此一举,直到我被坑了一回,...

搞懂数字签名,就是解决互联网上的“赖账”问题

搞数字签名这玩意儿,说白了,就是为了解决“赖账”和“被改动”这两个破事儿。以前我没当回事,觉得多此一举,直到我被坑了一回,才知道这玩意儿的重要性,必须得亲手实践一遍。

那是前几年,我给一个外包项目发了一个超关键的配置文件,涉及到几百万用户的数据。发过去没两天,那边技术就开始跟我扯皮,说系统崩了,一口咬定是我文件的问题。我反复确认,我本地的校验码和文件内容都完美,我敢拍胸脯保证,我发出去的文件绝对没问题。

我当时就火了,来回扯皮了两周,不仅影响了项目进度,浪费掉的时间成本比我那月的工资都高。他们团队的人嘴巴一个比一个硬,都说用了我的文件就炸了。他们甚至还发给我一个他们“号称”是我的文件,让我自己看,但一看就不是我原来的版本。

后来我才通过关系偷偷摸摸查到,是他们团队里一个刚来的实习生,在我文件发过去后,手贱点开看了一眼,可能想加个注释或者改个小参数,结果没注意改动了格式,然后整个系统就挂了。他们为了撇清责任,就说是我的问题,把脏水全往我身上泼。

这件事气得我整宿睡不着,我当时就琢磨,怎么才能让人家连想改都不敢改,或者改了也能一眼被抓个现行?那段时间我整夜没睡,一头扎进了加密学的资料里,开始研究怎么才能给我的文件盖一个“绝对不能伪造”的章。

什么是数字签名有什么用?一文看懂它的核心功能!

撸起袖子,下定决心要搞一个能让对方无法抵赖的系统。我跑去折腾了那个叫“非对称加密”的东西,就是公钥和私钥那套。我先是生成了一对密钥,私钥我像宝贝一样藏起来,绝对不给第二个人看,因为它是我的身份证明。

拿起了我的那个原始配置文件,用一个工具(就是哈希算法,名字不重要)算出来一串独一无二的“指纹”,这个指纹长度固定,内容跟文件百分百挂钩,哪怕文件只动了一个逗号,指纹也会天翻地覆。然后,我用只有我有的那个私钥,对这个指纹进行了加密。这一坨加密后的东西,就是所谓的“数字签名”。

我把原始文件和这个签名一起发给了他们。我同时公开了我的公钥,告诉他们收到文件后必须做一件事:

什么是数字签名有什么用?一文看懂它的核心功能!
  • 他们用我公开的公钥,去尝试解密那个签名,解密出来,得到我算出来的那个“指纹A”。
  • 然后,他们自己也用同样的工具,对收到的原始文件算一次指纹,得到“指纹B”。
  • 要求他们必须把“指纹A”和“指纹B”进行对比。

如果两个指纹一模一样,那没话说,证明:一、文件确实是我发的,没人冒充(私钥只有我有)。二、文件在传输、保存过程中一丁点都没被动过(指纹对上了)。只要他们动哪怕一个字母,两个指纹绝对对不上,马上就能抓现行,赖账是赖不掉的。这招一出来,效果立竿见影,那帮人再也不敢随便动我的文件了。

这就是我亲身实践后总结出来的,数字签名最牛逼,也是最核心的功能:

  • 证明身份,不可抵赖: 私钥只有我用,所以一旦签名验证成功,你赖不掉,就是我发的。
  • 保障文件完整性: 只要有人动过文件,哪怕一个空格,指纹都会变,立马失效。

实践证明,这比扯皮一整天有用多了。遇到这种事,别犹豫,直接动手去给自己项目加上这层保险。实践出真知,就是这个道理。

最新文章