我一直认为世界上没有无法破解的网络验证,但是我们可以想办法提高被破解的难度,当破解难度超过软件的价值的时候,我们可以暂时认为你是安全的。
这个文章,给大家聊聊通讯数据加密的方式。
一、入门级文本数据加密。
使用精易模块里的,这个数据只是能起到最基本的效果。我们可以写2个例子。
这里我们可以发现,基本上没有什么加密效果。只能迷惑入门萌新,这种能够通过秘闻解密到元数据的方式,叫做对称加密。
就比如,我们玩橡皮泥,捏成了猴子,我们一样可以把橡皮泥从猴子捏成最基本的形态,
a = 文本_加密 (“bbs.125.la”, “password”)调试输出 (a ) a = 文本_加密 (“bbs.125.l”, “password”)调试输出 (a )
二、非对称加密,rsa
公钥内容= “MIGJAoGBAL1b71osPwmcD2q23e5skxyaLcoJ5oVmvPCPThH2RuK8bp4wG24rQjCdYzXJjr1x0Ovhizx68zCcu93CCzYAiry+A5zNrP2RYDh+bXwKQPq8sveCh1RNZ/nLcKVq5rEDzEWWNR3e/2nqdeaKlkePfrQLjJQetqw9yZDUpMs/8m3rAgMBAAE=”
私钥内容= “MIICXQIBAAKBgQC9W+9aLD8JnA9qtt3ubJMcmi3KCeaFZrzwj04R9kbivG6eMBtuK0IwnWM1yY69cdDr4Ys8evMwnLvdwgs2AIq8vgOczaz9kWA4fm18CkD6vLL3godUTWf5y3ClauaxA8xFljUd3v9p6nXmipZHj360C4yUHrasPcmQ1KTLP/Jt6wIDAQABAoGBAJICn88iKwFX6rNYikxcQBtf70rI042tqKa9eW90PTh8H7euVJhglssxsNw6rOv7JSOdaGWcUIT9dgcKpuZfCJonf4oxJljhRavQ0apuQ5V8j6sLm6JavNUy1vQeIskZwzpFeRwfuB5uPD4NG3bptaQEO9h+gqoai+yHyDY0NQ0hAkEA8+RxWzVpqSURWRU88YhrXvamwRY+1Mh+afVAOB0mp0GhsXy71ntPtWaO7CiDfSN+P+cfeb6TVDvD0r4d+31UGQJBAMbCcfNmzKMRk5/fAMvpaBrPLDbDst3fxLyTgQ4oAMdzWNf82wsO0OROXuWToNj/ViBuCorft5SHG746IemhMqMCQHUfDxCt5b/EfUA6YrnauTUxXYL8G9AzOAHKNLy9wwIvEmcZb1rgfLawOZJPIlXF5arqYsMkMbwRt0hM5DkRRoECQQCiUIjeTUUwpln4ZRUxcRsjSazBzG914he4KH1sIh8AwqH7QPNgxGizCY1Vzom8rEiZk0PoxWoWUX/GiZLISGwhAkAVCCFxBnua7as/YVLKnIGp97ZSbaGhR1OhBSu3sZMPqSOcYW99B8KBz2z+dZKCw61TOLTs+zn0Lqex9tbfKts8”
我们看上面的2个字符串,大家应该看不到任何规律,很多人说这不是base64吗?你可以解密出来,一样是没有规律的,但是他们之间有一个非常有意思的用途。
如果我们使用上面的公钥内容,对“bbs.125.la”加密,我们得到一段密文,我们可以使用 私钥内容 进行解密出来。
我们通过以上私钥,对“bbs.125.la”加密,得到:“g/PVu/qynnsvySMLXSUMgveUR7Xh3ce8KUE23J0eETmga7vjeNZgyyGLFoBonHmASxYCKet3G6gqI4yAKZXwbMSsl9aVQZcZEiVzchcVoeaV5xximghyJu+YJYZWd4oFLOVfK9V4FAeBCXz6Rr6zZCFlWT5VdTANr37dCh49jUw=”
如果通过公钥进行解密这段密文,可以获得 “bbs.125.la”
这种就叫做非对称加密。 下面说下用法。
用户客户端,公开公钥,公钥用来解密服务端发送来的数据。
软件的服务端保存私钥信息,用来解密客户端发送过来的数据。
这样就实现了通讯过程的加密,保证数据被非法拦截的时候,无法直接获取密文的信息。 但是客户端如果有公钥还是能知道服务器发送的数据可以解析。
用在网络验证中,如果想要数据不被拦截和破解,还是要注意公钥防护的,尽量让公钥也能不被直接看到。
抽空给大家分享下隐藏公钥的方法,当然,这些方法都可以被破解,不过可以通过比较复杂的隐藏方法,提高被破解了难度。
注意:我们经常用到的https 协议,其实也是这种非对称方法,所谓的ssl证书,其实只是保存了一串私钥文本文件而已,机构稍微比这个复杂一点。
最新版的微信支付协议、支付宝支付和银行支付,均是采取的这种验签方式,只是加密强度和逻辑机构更复杂一点。
|