密码学思维导图

下面我们针对思维导图一一进行讲解。
OpenSSL生成密钥演练

- 生成强度是512的RSA私钥
1 | $ openssl genrsa -out private.pem 512 |
- 以明文的形式输出私钥内容
1 | $ openssl rsa -in private.pem -text -out private.txt |
- 从私钥中提取公钥
1 | $ openssl rsa -in private.pem -out public.pem -outform PEM -pubout |
- 以明文的形式输出公钥内容
1 | $ openssl rsa -in public.pem -out public.txt -pubin -pubout -text |
- 使用公钥加密一个小文件
1 | $ openssl rsautl -encrypt -pubin -inkey public.pem -in msg.txt -out msg.bin |
- 使用私钥解密一个小文件
1 | $ openssl rsautl -decrypt -inkey private.pem -in msg.bin -out a.txt |
- 将私钥转成DER格式
1 | $ openssl rsa -in private.pem -out private.der -outform der |
- 将公钥转成DER格式
1 | $ openssl rsa -in public.pem -out public.der -outform der |
程序开发证书生成

- 生成私钥ca.key
1 | $ openssl genrsa -out ca.key 1024 |
- 创建请求证书csr文件
1 | $ openssl req -new -key ca.key -out rsacert.csr |
- 生成证书并签名,有效期10年
1 | $ openssl x509 -req -days 3650 -in rsacert.csr -signkey ca.key -out rsacert.crt |
- 格式转换 crt -> der,生成公钥rsacert.der
1 | $ openssl x509 -req -days 3650 -in rsacert.csr -signkey ca.key -out rsacert.crt |
- 导出p12文件
1 | $ openssl pkcs12 -export -out p.p12 -inkey ca.key -in rsacert.crt |
到此为止,我们的文件目录下会创建5个文件,分别为 ca.key
、rsacert.csr
、rsacert.crt
、rsacert.der
、p.p12
,但是对于我们程序真正有用的只有p.p12
和rsacert.der
。
总结
至于对称加密和非对称加密算法相关的文章很多,这里不在赘述