你打开WhatsApp,屏幕上跳出一行字:“您的消息已端到端加密。” 这句话你见过不下百次,但你有没有停下来想过——加密到底是把消息怎么了?是涂了一层隐形墨水,还是塞进一个只有你和对方能打开的保险箱?
有个朋友说,加密就是个“字母搬家”的游戏。听起来像开玩笑,但最核心的机制还真就这么回事。我们把这个游戏完整走一遍,你就能看到那些号称“军事级加密”的技术究竟在你手机里干了什么。
![]()
假设你想给朋友传一句悄悄话。在传递之前,你俩偷偷约定一条规则:把每个字母往后挪一位。 A变成B,B变成C,依此类推。你想发“HELLO”,按这条规则一转,H变I,E变F,L变M,L变M,O变P,结果就是“IFMMP”。你把这串鬼画符交给送信的人。送信人偷看也好,路上被人抢走也好,看到的都是毫无意义的“IFMMP”。只有你的朋友掏出那条只有你俩知道的规则,把每个字母往回挪一位,I变回H,F变回E,M变回L,P变回O,“HELLO”才重新露面。
![]()
在这个幼稚的场景里,藏着加密学的全部底牌:一条只有双方知道的规则,一个能被人随便看的乱码,和一套能逆转回来的算法。那条秘密规则,就叫密钥。那个原本可读的“HELLO”,叫明文。而那个面目全非的“IFMMP”,就是密文。
这个字母移位的把戏,学名叫凯撒密码,两千多年前恺撒大帝就这么给前线传军令。现在你手机里的加密当然不会只有挪一下字母这么寒碜,但它干的本质工作一模一样:把可读的东西变得不可读,再让知道秘密的那个人把它变回来。
问题的关键来了——电脑根本看不懂“H”“E”“L”“O”这些符号。电脑只认0和1。你的消息在手机里根本不是一个字母序列,而是一串数字。每个字符都对应一个编号,H是72,E是69,L是76,O是79。这些数字再转成二进制:72变成01001000,69变成01000101。你发出去的“HELLO”,在底层其实是这些二进制数排排坐。
所以,计算机里的加密不是对字母动手脚,而是对这些数字做数学变换。 比如有个数字是1,在二进制里是00000001。系统用一条秘密规则——比如“加5”——把1变成6,于是存储的数据变成00000110。旁人偷看到这个数字,只能看见6,根本猜不到原始值是1。到了接收方手里,拿着同一套规则反过来算:6减5等于1,原始数据就这么回来了。
![]()
现代加密算法当然不会只用“加5”这种幼儿园数学,RSA、AES这类家伙搬出来的都是大质数、模运算和不可逆函数。但骨骼没有变,就四步:取出原始数据,套一个数学公式,配上密钥搅一搅,产出一个没有密钥就完全看不懂的乱码。 这个乱码,就叫“已加密数据”。
所有的“端到端加密”,所有软件弹窗里的“军事级安全保障”,翻到底都是这个套路。你不是在用什么高深莫测的黑盒技术,你只是在跟一串数字玩着升级版的字母移位游戏。这个过程里真正值钱的,不是你用的加密算法——这些算法基本都是公开的——而是只有你和通信对象才知道的那个密钥。
所以下次再看到“您的消息已加密”这行字,你可以放心,你的消息并没有凭空消失,也没有被装进什么魔法容器。它只是被一个数学规则改写成了一堆看起来像乱码的数字,等着另一边的人用同一条规则把它拼回原样。你能看懂这条规则的那一天,就能看懂全世界所有的加密。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.