• 对称加密和非对称加密


    游戏中常用的加密算法

    本书不是一本专门介绍密码学的书,所以下面讲解的加密算法内容将会忽略很多细节上的东西,想要深入研究和学习密码学的读者可以参考《Cryptography for Developers》,中文版名称叫《程序员密码学》。

    1  对称加密和非对称加密

    首先引入两个术语:明文和密文。明文是指未加密前的原始数据,密文是指加密后的数据。根据加密和解密时的密码不同,可以分为两种类型的加密解密算法。

    (1)对称加密/解密。

    加密和解密使用相同的密码,有代表性的有DES、Blowfish、TEA、Base64。对称加密解密的特点是运算相对非对称加密解密简单、速度块,主要应用于需要加密大量数据的场合,例如游戏的资源文件加密。

    (2)非对称加密/解密。

    加密和解密使用不同的密码,有代表性的有RSA、DSA、ElGamal和ECDSA。非对称加密/解密的安全性是基于复杂数学难题,特点是运算复杂、速度慢,主要应用于金融、军事等重大机密的系统。

    为什么需要非对称加密和解密呢?假设你要发送一份非常机密的文件给你的朋友,而你的朋友的电脑跟外界通信的线路包括无线信号都被监听了,那怎么办?

    方案A:提前给你的朋友协商一个密码,然后使用对称加密算法加密文件,转送给你的朋友,你的朋友根据之前协商的密码解密文件。

    使用方案A传输加密后的机密文件,即使监听者获得了文件,仍然无法解密。初步肯定方案A有效。但当情况变成你要给多个陌生人传输机密文件,而之前根本无法和每个陌生人协商密码,那怎么办呢?这个时候非对称加密就有用武之地了。

    如果使用非对称加密算法来加密/解密机密文件,那么陌生人先要确定一个加密的密码,然后将加密密码传输给你同时告诉你他使用哪种非对称加密算法,你用加密密码按照指定的非对称加密算法加密机密文件,将加密后的文件传输给陌生人,陌生人收到文件后使用另外一个密码解密文件。

    这样即使监听者获得了加密密码和加密后的文件,也解不开机密文件,因为使用非对称加密算法加密的文件必须使用解密密码来解密,使用原来加密密码来解密是无效的。

    加密密码和解密密码是相对的,如果用加密密码加密那么只有解密密码才能解密,如果用解密密码加密则只有加密密码能解密,所以它们被称为密码对,其中的一个可以在网络上发送、公布,叫做公钥,而另一个则只有密钥对的所有人才持有,叫做私钥,私钥不以任何形式传播。

  • 相关阅读:
    uni-app开发的应用(小程序,app,web等),使用Node+Koa2开发的后端程序接收上传文件的方法
    ES6学习笔记之数组的扩展
    ES6学习笔记之字符串的扩展
    UnhandledPromiseRejectionWarning: SequelizeConnectionError: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    java之内存分布图
    java的构造方法
    java的局部变量和成员变量以及区别
    java类型转换详解(自动转换和强制转换)
    webpack入门宝典
    js函数之四大调用模式
  • 原文地址:https://www.cnblogs.com/ulex/p/1887367.html
Copyright © 2020-2023  润新知