认证和加密的区别

使用电脑、手机等设备时经常会遇到需要输入密码的情况,比如开机后需要输入密码,登录网站需要输入用户名和密码,打开一些压缩包时也会被提示需要密码。虽然都是一串字符,但在不同场景下密码的用途并不总是一样的。有的密码是用来“认证”的,而另一些密码则是用来“加密”(或“解密”)的。理解这两者之间的区别有助于认识到这些密码在保护信息的过程中如何发挥作用。

“认证”用途的密码现在已经非常常见,这些密码的作用是证明身份,往往还需要和其他信息(如用户名、手机号等)一起使用。各种登录场景下的密码往往就是“认证”用的。来看一个例子,假如张三刚换了手机,要在新手机上登录微信。首先他需要输入自己的微信号,来让微信知道稍后应该显示发给张三的消息,而不会把应该由李四接收的消息显示到张三的手机上。但微信怎么能够确认这个输入了张三微信号的人就真的是张三,而不是其他人呢?如果不加确认仅凭微信号就允许登录,那么其他人就能使用张三的微信号、查看张三的消息或者给张三的联系人以张三的身份发消息,这显然是非常危险的。张三需要一种方式来证明自己就是这个微信号的主人,而密码就可以作为这种证明方式。张三输入注册微信号时设置的密码,微信进行比对,如果两者相符,那么微信便可以认为张三就是这个微信号的主人,于是允许登录。这便是密码的“认证”用途。

除了“认证”,密码还能被用来“加密”(或“解密”)信息,一般创建或者打开压缩包时输入的密码就是用来加解密的。“加密”用途的密码往往要配合某种加密算法(可以简单把算法理解为“计算方法”的缩写)一起使用,以便将来能够把加密过的信息解密出来。下面来看一个假想的例子,为了简单起见,假设需要加密的信息(明文)和用来加密的密码都是整数,而使用的加密算法是把这两个整数相加得到结果(密文),相应的解密方法就是用“密文”减去“密码”得到“明文”。比如把信息(明文)2024使用这个算法加密,设置密码为123456,那么加密得到的结果(密文)就是125480。对于一个不知道这里使用的密码和加密算法的人来说,从密文125480无法得知原来的明文是2024,因此“加密”过程保护了信息(明文)2024。即便公开了加密算法,在没有密码123456的情况下,也无法仅从密文125480就确切知道明文是2024。而如果同时知道密码和加密算法,就能从加密后的信息(密文)125480得到原来的信息(明文)2024。这便是密码的“加密”用途。

可以看到,密码在“认证”和“加密”过程中有着不同的作用。在“认证”过程中,密码只是作为一种事先约定好的口令来证明身份。身份证明可以通过很多方式完成,比如通过相貌、指纹、DNA等生物信息或通过身份证、护照、驾驶证等凭据信息。信息本身并不被“认证”密码直接保护,保护实际是由信息保管者提供的。而在“加密”过程中,密码直接参与到密文的生成过程中,和加密算法一起,对信息起着直接的保护作用,这里的保护来自数学和密码学。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注