作者:私语茶馆
1.前言
非对称算法有非常多的用途,实现license管控,数字签名,加密内容等等,由于涉及场景和标准非常多,因此实际使用过程中还是存在一定门槛,这里记录一下利用非对称算法RSA的应用关键点,并提供实现license管理的案例。预计拆分为以下几个章节:
(1)秘钥对生成:本章节为第一部分,介绍加密算法基本原理和公钥、私钥的生成和导出方式。
(2)利用私钥加密:基于RSA2048实现私钥加密的方法和代码
(3)利用公钥解密:基于RSA2048实现公钥解密的方法和代码
(4)Licnese生成与管理:将RSA2048应用在license的管理场景
2.非对称秘钥简介
加密的方式按照对称方式可分为:对称加密算法和非对称加密算法。
对称加密算法就是:加密、解密使用的是同一个秘钥,例如:用12345来加密一段内容,那么解密时还是需要12345。对称加密原理如下:
对称加密算法工作原理
对称加密算法的强度依赖于算法的强度,原则上来讲应该做到没有秘钥就不能解密内容。这往往依赖于秘钥的复杂度和算力的大小(强行破解)。例如典型的对称加密算法AES(Advanced Encryption Standard),当秘钥长度128位时,评估破解它需要5000亿年, 256bit就认为是不可破解的了。但是吧,秘钥需要分发给消息接收的人,你加密后发给消息接受者,在这个过程中,容易被截获。因此演化处非对称加密算法。
非对称加密算法:主要是避免了在不同人之间发送密码的问题。其实现原理就是生成一对秘钥,一个叫私钥,一个叫公钥。本质上用私钥加密后的内容,可以用公钥解密,反之依然。就是加密和解密的秘钥不同。这样服务端可以保留私钥,只发给客户端公钥,就避免了秘钥对在不同的人之间发送。就算公钥被截获,也产生不了大作用。
非对称加密算法的流程和应用场景如下: