zoukankan      html  css  js  c++  java
  • RSA加密、解密原理及秘钥生成

    RSA加密、解密,签名和验签的原理

    简介:RSA加密是一种非对称加密。可以在不直接传递密钥的情况下,完成解密。这能够确保信息的安全性,避免了直接传递密钥所造成的被破解的风险。是由一对密钥来进行加解密的过程,分别称为公钥和私钥。两者之间有数学相关,该加密算法的原理就是对一极大整数做因数分解的困难性来保证安全性。通常个人保存私钥,公钥是公开的(可能同时多人持有)。

    注: linux环境下执行命令,或者Windows安装openssl

    1.使用openssl生成pkcs8格式秘钥

    私钥生成命令:

    openssl genrsa -out private_pkcs1.pem 2048
    ​
    openssl pkcs8 -in private_pkcs1.pem -out private_pkcs8.pem -topk8 -nocrypt

    公钥生成命令:

    openssl rsa -in private_pkcs1.pem -pubout -out public.pem

    使用时可直接提取文件里面的字符串秘钥,或者直接读取对应的秘钥文件。

    通过已有的pfx证书文件提取公私钥命令:

    openssl pkcs12 -in certificate_p12.pfx -out private_pkcs8.pem -nodes -nocerts
    openssl rsa -in private_pkcs8.pem -pubout -out public.pem

    2.生成pfx文件

    1、生成key,openssl.key为key的名字随意起,1024为密钥长度

    openssl genrsa -out openssl.key 1024

    2、生成cer证书(openssl.key为之前生成的key的名字,openssl.cer为生成的证书名字,3650为证书过期天数,CN的参数***.website是的你主机名或者IP地址(这里一定要写对,不然以后访问的话,浏览器会提示有风险)。

    openssl req -new -x509 -key openssl.key -out openssl.cer -days 3650 -subj /CN=***.website

    3、生成需要的pfx私钥文件(会让你输入密码,使用私钥时候使用的(千万不能忘记))

    openssl pkcs12 -export -out openssl.pfx -inkey openssl.key -in openssl.cer

    4、生成crt证书(由于手机需要crt证书,所以需要的话还要生成crt)

    openssl req -new -x509 -key openssl.key -out openssl.crt -days 3650

    3.不同证书文件格式der、cer、pfx、pem区别

    参考博客地址:https://blog.csdn.net/hqy1719239337/article/details/88896074

    .*DER*:用二进制DER编码的证书;

    .PEM:用ASCLL(BASE64)编码的证书;

    .CER:存放公钥,没有私钥;

    .PFX:存放公钥和私钥

    pem 后缀的证书都是base64编码;der 后缀的证书都是二进制格式;crt .cer 后缀的文件都是证书文件(编码方式不一定,有可能是.pem,也有可能是.der);.pfx 主要用于windows平台,浏览器可以使用,也是包含证书和私钥,获取私钥需要密码才可以)

    X509文件扩展名(x509 这种证书只有公钥,不包含私钥。)

    4.转换方式

    可以使用OpenSSL命令行工具在不同证书格式之间的转换

    PEM to DER

    openssl x509 -outform der -in certificate.pem -out certificate.der

    PEM to PFX

      openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

    DER to PEM

      openssl x509 -inform der -in certificate.cer -out certificate.pem

    PFX to PEM

      openssl pkcs12 -in certificate.pfx -out certificate.cer -nodes
  • 相关阅读:
    十代雅阁广东车友群,雅阁广州车友群,深圳雅阁车友群,雅阁微信群、雅阁车友群、十代雅阁交流微信QQ群
    雅阁微信群、雅阁车友群、十代雅阁交流微信QQ群
    [MySQL]快速解决"Table '.sjzlfzbp_post' is marked as crashed and should be repaired"故障
    雅阁微信群、雅阁车友群、十代雅阁交流微信QQ群
    node调试工具--nodemon使用简介
    IIS7.5 URL文件名有加号或空格显示404错误的解决办法
    Mysql CPU使用率长期100%的解决思路备忘
    Windows下通过CMD命令行程序操作MySQL数据库
    软技能:十步学习法
    Linux 文件系统的基本结构
  • 原文地址:https://www.cnblogs.com/ouyanxia/p/12427955.html
Copyright © 2011-2022 走看看