美文网首页每天写1000字每周500字
入门级加密——5分钟懂得一个加密方法

入门级加密——5分钟懂得一个加密方法

作者: 刘思宁 | 来源:发表于2017-07-28 19:57 被阅读123次

故事是这样的:

你有一封信,里面写着你对你对象的爱,但是,邮递员叔叔想要拆散你们,所以他打开你的信,把所有的爱,改成了讨厌。你跟你对象因此拜拜了。

如何防止别人改你的文件?如果别人改了你的文件,你也应该能知道,不是吗?不要读了被人故意造假的信息,还觉得自己看到了天大的真实。了解了这个加密方法,你会觉得所有偶像剧里的相关桥段都是因为男女猪脚不好好学习。

其中一个方法是:用你文件里的内容生成一个唯一的密码,只要文件内容变,密码必须变。这样,如果文件内容被别人改了,你也是知道的。也就是说,文件和密码一一对应。

写到这里已经有点抽象了,理解抽象的方法之一是举个例子。所以我们举个例子。如果我在信里写:「你好吗」,然后用一种方法产生一串密码:7c62edd327b79f9b44c5142675e39d0b。如果这封信被别人改成了「你好讨厌」,密码会变成59d320240beecf93759f02cb39f88f30。也就是说,一封信对应一个密码,如果信的内容和密码对不上,那说明信被掉包了。

那怎么应用呢?

如果我要写这封信,我可以用这封信的内容生成一个密码,通过一个比较善良的邮递员送给XX收信人。收信人「虽然不能从密码中读出任何信息」,但是可以留着。然后我选择另外一个邮递员,把真正的信送给收信人。当收信人把密码和信都收到之后,用「同样的方法」,算一下这封信的密码应该是多少,如果和密码一样,就说明信是真的。否则,信就是假的。

但是,这里面有几个疑问,用什么样的方法,可以让内容生成唯一的密码呢?而且,收信人用通用的方法也要能够生成同样的密码。这就涉及到算法,要保证密码的唯一性。我上面把「你好吗」和「你好讨厌」转换成密码的算法是一种叫做MD5的方法。

还有一个疑问,我在上面说,收信人不能从密码中读出任何信息。因为很多人都能看到这串密码,比如那个邮递员,但是不能让他们读出里面的信息。而且,即使收信人和我用同样生成密码的方法,他也不能给密码解密。也就是说MD5是一种非对称加密:能加密,却不能解密

扰乱偷信人的视听

刚刚提到的MD5加密方法,其实是公开的,谁都可以用。所以,刚才我们的送信流程设计,并不是天衣无缝的。如果两个邮递员想合伙给这封信掉包,他们就可以写个「你真的好讨厌」,然后用MD5算出一个密码,分别送给收信人。收信人核对了信的内容和密码,断定你真的写了「你真的好讨厌」,怎么办?

为了解决这个问题,我们可以想办法扰乱偷信人的视听。刚刚我们提到,MD5加密过的内容是没法解密的,所以,拿到密码的人还不能拿到完全的信息。这就给了我们一个机会,在生成密码的时候,加入一些骗过敌人眼睛的东西。比如,我把「你好吗」这封信变成,「AAA你好吗AAA」,用MD5加密一下,就变成了779352b764d30ababd0e22b8bcd03b2c,跟「你好吗」加密后的结果是不同的。而敌人是不知道你加个AAA这个奇怪的东西到信里的。

收信人还是收到「你好吗」这封信,然后自己加上AAA到信里,算一下MD5对应的密码,如果正确,密码相同,怎说明信是对的。如果邮递员把你好吗,改成了你真的好讨厌,而送去的密码,是直接用「你真的好讨厌」加密过的,没有加AAA,你们也是对不上的。

其实,这种方法就叫做加盐。留意身边和很多工具,比如图片上传都有采用这种加盐的方法,来保证文件就是正确的文件。

后话

虽说MD5是非对称加密,但是真的没办法被破解么。理论上也是有办法的,如果有人记下了MD5中所有可能的密码,就能对应出,原始的字符内容是什么了。

相关文章

  • 入门级加密——5分钟懂得一个加密方法

    故事是这样的: 你有一封信,里面写着你对你对象的爱,但是,邮递员叔叔想要拆散你们,所以他打开你的信,把所有的爱,改...

  • Http加密类型

    Http加密类型 对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对...

  • 【iOS开发】常用加密算法(一)AES加密算法

    对称算法 采用单钥密码的加密方法,同一个密钥可以同时用来加密和解密,这种加密方法称为对称加密,也称为单密钥加密 常...

  • 加密解密

    1. 对称加密 采用单钥密码的加密方法,同一个密钥可以同时用来加密和解密,这种加密方法称为对称加密,也称为单密钥加...

  • 加密方式

    对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密...

  • 对称加密与非对称加密

    对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密...

  • 对称加密和非对称加密

    对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密...

  • 阿里大神强推!接口测试之必会接口加密类型

    对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密...

  • iOS几种加密方式

    iOS 几种加密方法2017-06-19 [iOS开发] iOS常见的几种加密方法 普通加密方法是讲密码进行加密后...

  • RSA的公钥、私钥

    RSA的公钥、私钥 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,...

网友评论

    本文标题:入门级加密——5分钟懂得一个加密方法

    本文链接:https://www.haomeiwen.com/subject/shbflxtx.html