安装 OpenSSL
官网:https://www.openssl.org/
在 ubuntu 下,本身应该是已经装了 OpenSSL(也或许什么时候装别的东西时依赖安装的?),如果仅仅是使用 OpenSSL 进行平时的加解密,是够了终端输入命令是可以运行的:
但如果要想使用 OpenSSL 自己写些什么东西,则需要安转 OpenSSL 库函数,当然安装起来也很简单:
也可以选择下载源代码手动编译:https://github.com/openssl/openssl
这样保证你可以调用 OpenSSL 库中的函数。
现在,你就可以随手使用 OpenSSL 提供的各种加密方式了,什么 MD5,RC4,RSA 都不在话下了。
而且,现在我们的所有操作都可以有两种途径来实现,命令行 OR 代码。
作为实验,我们以 RSA 为例,简单使用一下 OpenSSL,先用命令行来生成密钥,再用代码来实现对一个字符串的加解密。
生成密钥
RSA 作为非对称加密算法,密钥分为 公钥 和 私钥,它们是成对儿的。公钥公布出去,别人想给你发加密消息时,公钥用来加密,加密内容发给你;私钥自己留着,当收到别人发你的加密消息时,就可以用自己的私钥用来解密。不得不说,公钥密码体制这个想法太秒了。
生成一对密钥
|
|
提取公钥
两种格式?
- 1.The PEM public key format uses the header and footer lines:12-----BEGIN PUBLIC KEY----------END PUBLIC KEY-----
提取方法:
- 2.The PEM RSAPublicKey format uses the header and footer lines:12-----BEGIN RSA PUBLIC KEY----------END RSA PUBLIC KEY-----
提取方法:
具体为什么有两种格式呢,可以参看这里:
https://tls.mbed.org/kb/cryptography/asn1-key-structures-in-der-and-pem
加解密
公私钥都准备好了,就可以来加解密了。
我们用代码的方式来实现对一个字符串的加密,具体函数可以参看
官方文档:
https://www.openssl.org/docs/manmaster/man3/
好,上代码:
|
|