当前位置: 首页 > news >正文

做网站 网上接单汽车网站开发流程

做网站 网上接单,汽车网站开发流程,建设我们的网站 教案,贵州省建设网站文章目录 前言ssh-keygen 和 openssl两种证书的内容对比 从私钥提取公钥OPENSSH和PEM两种密钥格式相互转化OpenSSH 格式私钥转换成 OpenSSL PEM 格式私钥OpenSSL PEM 格式私钥转换成 OpenSSH 格式私钥OpenSSH 格式公钥生成 OpenSSL PEM 格式公钥OpenSSL PEM 格式公钥生成 OpenS… 文章目录 前言ssh-keygen 和 openssl两种证书的内容对比 从私钥提取公钥OPENSSH和PEM两种密钥格式相互转化OpenSSH 格式私钥转换成 OpenSSL PEM 格式私钥OpenSSL PEM 格式私钥转换成 OpenSSH 格式私钥OpenSSH 格式公钥生成 OpenSSL PEM 格式公钥OpenSSL PEM 格式公钥生成 OpenSSH 格式公钥 公钥和私钥的匹配使用加密和解密签名和验证 总结 前言 公钥和私钥都是一串字符长得也没有什么关联性那么当拿到一个公钥和一个私钥后怎么验证它们两个是一对呢先说说为什么会有这个疑问最近在对接一些SDK时经常需要做签名和验证签名的工作双方要相互提供公钥来完成后续的身份验证测试过程中生成了多个密钥对当时就在想如果我用错了怎样才能发现呢有没有什么方法可以验证公钥和私钥是一对呢再寻找方法的过程中发现 ssh-keygen 和 openssl 生成的密钥对差别居然这么大但后来又发现他们居然还有联系所以本文将刚刚提到的问题都总结一下方便日后查阅。 解决这个问题的思路我么可以从密钥使用的方式入手私钥加密公钥解密可以验证身份公钥加密私钥解密可以秘密传递数据也就是说公钥和私钥是配合工作的如果我们用私钥加密一个数据公钥可以解开就说明他们两个是一对的的。 其实还有一个更简单的办法公钥是可以从私钥中提取出来的反之则不行。在公钥密码学中私钥和公钥之间的关系是一种数学上的单向函数。这种函数的特性使得从私钥生成公钥是可行的而从公钥还原私钥是非常困难的这被称为一个单向函数或单向映射因此被认为是安全的。 有了这个前提我们就可以这样做从私钥中提取出公钥然后和要比对的公钥进行比较如果一致就说明原来的公钥和私钥是一对啦。 ssh-keygen 和 openssl ssh-keygen 和 openssl 是两个不同的工具它们分别用于生成和处理不同类型的密钥和证书。以下是它们的一些主要区别 功能和用途 ssh-keygen主要用于生成和管理SSH密钥对包括RSA、DSA、ECDSA和Ed25519密钥。openssl是一个通用的密码学工具可以用于生成和管理多种密码学对象包括SSL/TLS证书、密钥、摘要和数字签名等。 支持的算法 ssh-keygen专注于SSH密钥生成支持多种SSH密钥算法。openssl支持广泛的密码学算法包括RSA、DSA、ECDSA、Diffie-Hellman、AES、SHA等用于生成和操作各种密码学对象。 密钥格式 ssh-keygen生成的SSH密钥通常以OpenSSH格式存储。openssl支持多种密钥格式例如PEM、DER等可以处理不同类型的密钥和证书。 具体应用场景 ssh-keygen主要用于SSH连接生成用于身份验证的密钥对。openssl更广泛地用于TLS/SSL证书、数字签名、加密和其他与通用密码学相关的应用。 具体命令和用法 ssh-keygen用于生成SSH密钥对的常见命令包括ssh-keygen -t rsa -b 2048 -f myid_rsaopenssl用于生成RSA密钥对的常见命令包括openssl genpkey -algorithm RSA -out private-key.pem openssl rsa -pubout -in private-key.pem -out public-key.pem以上的ChatGPT提供的内容还是对比的挺全面的从 openssl 生成密钥对的过程可以看出确实可以从私钥中提取出公钥。 ssh-keygen 是我接触的最多的生成密钥对的命令不管是github还是gitlab或者一些其他的托管平台都会提到SSH Keys所以每次我都会用 ssh-keygen 来生成它是用于生成SSH连接密钥对最直接的选择如果是想要使用更广泛的密码学操作包括证书生成、签名和加密等那么 openssl 提供了更大的灵活性。 两种证书的内容对比 前面说了两种命令生成的证书、格式、算法和用途都有区别我们来看看利用上面的命令生成的证书内容有什么不同先看 ssh-keygen 生成的私钥 myid_rsa 和公钥 myid_rsa.pub # demo demo-ThinkPad-X390 in ~/tmp/rsa [17:58:47] $ ssh-keygen -t rsa -b 2048 -f myid_rsa Generating public/private rsa key pair. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in myid_rsa Your public key has been saved in myid_rsa.pub The key fingerprint is: SHA256:eLzG9lryO/AOdd05cDkixvBNCPFZRLRu0wp3bxZ7Vnk demodemo-ThinkPad-X390 The keys randomart image is: ---[RSA 2048]---- | o * | | . . .| | B | | o . o..| | . S ....BE| | o.o . B| | Bo. . .*| | o *o .| | .oo | ----[SHA256]-----# demo demo-ThinkPad-X390 in ~/tmp/rsa [19:22:03] $ cat myid_rsa -----BEGIN OPENSSH PRIVATE KEY----- b3BlbnNzaC1rZXktdjEAAAAABG5vbmUAAAAEbm9uZQAAAAAAAAABAAABFwAAAAdzc2gtcn NhAAAAAwEAAQAAAQEAr7gEjCdhA4at0tx0efpLunEOEGvK3ejJCh/dBwLfsvVJelwTeJjK zI2nFvYGkJgndhWLuvwy6ODnvASeNvXSvZZzXvvXjTF4JP3TRbATayFvS9mZgzOnxh/rU z4P7ecLBfqZZkemVBrMlv37yaIWf7co59dtrJJuAfZJFXyW//LQhNoEaqbZ/gvZls5pOX r2foMnYg2HV0ayPlvz8cmVF8LIOqaGOc28nMQakVwOnZhbSv1bGprIGcy4czc7UOp/mo t6mWJflpq3NBGiImyfaT2kxp1pIdd6ISqoZqa9C2JzH7ZXVGjevbHuqup871yjUGapxDx lDk9HjdSLwAAA9AlxLUDJcS1AwAAAAdzc2gtcnNhAAABAQCvuASMJ2EDhq3S3HR5ku6cQ 4Qa8rd6MkKH90HAty9Ul6XBN4mMrMjacW9gaQmCd2FYu6/DLr44Oe8BJ429dK9lnNe9e NMXgk/dNFsBNrIW9L2ZmDM6fGHtTPg/t5wsFplmR6b5UGsyW/fvJohZ/tyjn122skm4B 9kkVfJb/8tCE2gRqptnC9mWzmk5evZgydiDYdXRrIW/PxyZUXwsg6poY5zbycxBqRXA 76dmFtK/VsamsgZzLhzNztQ6nb6i3qZYlWmrc0EaIibJ9pPaTGnX6kh13ohKqhmpr0LY nMftldUaN69se6q6nzvXKNQZqnEPGUOT0eN1IvAAAAAwEAAQAAAP8nH9HjYuE258XMLUnB 3vj9ii6XeWiyACLDHlUYOouUTQkPNXEgaOSpsuNUTok97vRjvqNp5mu6/liahGy10AYcM GN/wpM73MfjdKCV455vPAKL4OdNTzML6g97eVYSol7R9foxy8JhwIYdsFyD4xB4UYnKFS 1WP0Q/K5caMaNnazPF0X7JDSenEwBwl1bDAN5OKwZNzSzUpR/96fl1DAgnG9yp1/634WGt IfjXLm13OSMrSHfwazNHoqAPkD0SQVJrm38ppvqArU0tBVfh/kvBkv7CCAE9mzhxusiKju B0c/jrsRDu45AJX5wuqIWcZdfppATJjK10S20MgN5dkAAACBALYym7mpDVQJ2gedSjv/Pv aO/5b/20jawc3RFZdJAUWSGJTe9UqyHBHPlYj3/bHJVWIQ9S7s5AxpBtAEOsjeQf0VGFa FALQwcUghx5r1uM5sAL06CT/5t3Ze8lcJozNW7yjbVZKjJK13GTDMrnPYTfPOcI/6N3R SV2iKOwUQPAAAAgQDp9/2WvHOX2GKXan2BvMaexj6GYIQa8xEsqhtQGY9zxQ2d9Z7YgDf XnNanxv8XJ61komeP9KmhS2TCt0trj8sXtQobDsDGjFcDx0jjBobU6zKvO4htoZP3lb8w ZARgQoEANxqNOo8R61CsDQW4eM0ReAitKZ0GCcXbqNYCRTGwAAAIEAwEPdhAH4iH6V7IJn Qs3pgf9AG9UubDe9mAwVNIircWTFO2EFaBpwP7UKgpNmmZjoD2lWEcr2Zxv6x8ILBlJqea vCpGfLo0hwt2XZHgLRsTx8RmsbmYI2l8qnkMWyz5Lh3XAhNMZM4s9OvSJM6JPWYcedG5KY G1/zbarjwkqGn0AAAAVc2h6QHNoei1UaGlua1BhZC1YMzkwAQIDBAUG -----END OPENSSH PRIVATE KEY-----# demo demo-ThinkPad-X390 in ~/tmp/rsa [19:22:10] $ cat myid_rsa.pub ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvuASMJ2EDhq3S3HR5ku6cQ4Qa8rd6MkKH90HAty9Ul6XBN4mMrMjacW9gaQmCd2FYu6/DLr44Oe8BJ429dK9lnNe9eNMXgk/dNFsBNrIW9L2ZmDM6fGHtTPg/t5wsFplmR6b5UGsyW/fvJohZ/tyjn122skm4B9kkVfJb/8tCE2gRqptnC9mWzmk5evZgydiDYdXRrIW/PxyZUXwsg6poY5zbycxBqRXA76dmFtK/VsamsgZzLhzNztQ6nb6i3qZYlWmrc0EaIibJ9pPaTGnX6kh13ohKqhmpr0LYnMftldUaN69se6q6nzvXKNQZqnEPGUOT0eN1Iv demodemo-ThinkPad-X390接着看看 openssl 生成的私钥 private-key.pem 和公钥 public-key.pem # demo demo-ThinkPad-X390 in ~/tmp/rsa [19:23:01] $ openssl genpkey -algorithm RSA -out private-key.pem ...................................................................... ..................# demo demo-ThinkPad-X390 in ~/tmp/rsa [19:25:04] $ openssl rsa -pubout -in private-key.pem -out public-key.pem writing RSA key# demo demo-ThinkPad-X390 in ~/tmp/rsa [19:26:18] $ cat private-key.pem -----BEGIN PRIVATE KEY----- MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDjxEM9ypyLb0fT xk7Ujdvj7efUjbLhzAcbfHNRZqzqif1rlTS4jztIDZBX9/HJkDcoz1dIolp/53S CJtzqBrkHMzsi6dcqd5jXUfT3Ts/FMTVsAKIkwafnw2Gbi2DGQx8WQ8Sn5LlUP FSCJa2MTc21taiMP7CtF7iG6jFeGna3xeRTWAjMMS2xk9Zk37KMz8weU4ShdQ9q mX7yuKHuZzUiWHmjbW/bi6abur3dfi/1jRSnFQFr/gJoH1UXT4st/fW425nWqO ohSVxw61a09fjECfjVDkMXtwiPCbbGNjD8WjLbilOJK3uBx5e7GIN1jZjVBqlH9 NqEk12HVAgMBAAECggEAIlcf8DwRGDDBpsGnaN5yMbA0lo4y5Yz/sWgpgHciK TeMkHMN0TUzzAS5MVgFdfCachONFJpckm1sy3OynrTANPnkZ8CEuQPRjUGIloaA nATTVXPQV5pEbf4yrHZlXIYs8JjifDAYFLGIhIEsce1QTVPYT3lDGPsLWM36ED6 XVnvJYsr00wpLlYy4uWikt4Q8ruKDnWSS8xeE7pj0bBaqYd8Gz4jfrJ94IgNIROQ xnXb8aMG/o441ImrF6YXKn8jR/gjZXT1L4ZsD7fGTvLKBxxImBXL2eIoZ8usmTtX eLEfYaJlzyXOcnYKKVtMQxRI4ANJWWnMDgM8NTBTQKBgQD0hboW//hXGVcng3Pu NfD7hUPHQKWWUHbchjRfxvxy/4itqGaWHtUrmc4PTXUxW71YaVA6qm2gvfVjn83 o5k009vVbXYVvztNQq9wC0Fj2OYwQkxHMgAY9JdhZr6ghuEZ0hNd5Jea9K3w62C cY0mHqlvo55szhWmhuvzFtSUXwKBgQDudTFUjf7qPsfYEX14udsKtfowrjepFLf nQAbxj16PxpRBSV7S77gdlW1shKEreIPbm083bhU3ypCRs7ktR0Wki/uoQGYekHr b8NljhrM9DxY83HfLHAC/RjP8ZFrWJFgo6Whfr3jhlb8j3a4siLvqMj0d35BRv MHtsEhWSwKBgQC7M746aZG5LP9akvsofkeWaHpxi366S7QUNPLXMHBUP1U5j5T 5BsTnFbzxDtapHbtlTj9SKlE4llcLbY4/khRqlhBsKG97bwYLS5usTBDWG8Nrx DsigUnGq8jwzLdAcM3/kPGQNEBIzBiEa2bCrmrNu5hIeKZrYDqxKnPRQKBgQCh MZuNOwfbAkPvq9bfJuml1zho4eiyqIZVHv6Jx/KbBrk1d7Mkq8l2VsgNsTiPdDPS lqVFdeQ7izg34UHOnRfywBOizjgT6OFS1BRUPETwKHDgHMWNOJV7LIcmspdnUFCb QMjdNTXifi/FclF537sHpXoGpsHUqj1my7ozDe6DQKBgQDY9tJvXx5DRPVH2t60 0rl1df3PogoAhwjvKQ/Y5vLyrL470JxMNPtW546aWXRL6INTgOvsUqLJXEMlxl HdHIe16orIGBrGcqHNGfkQPfddJVOo0eQCCk4jaLL9EP7euA83vp6cP38rqgsL7 0gt34iMPCP9dEKaJyjZPvvFQ -----END PRIVATE KEY-----# demo demo-ThinkPad-X390 in ~/tmp/rsa [19:26:21] $ cat public-key.pem -----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA48RDPcqci29H08ZO1I3b 43n1I2y4cwHG3xzUWas6on9a5U0uI8/rSA2QV/fxyZA3KM9XSKJafd0gibc/qg a5BzM7IunXKneY11H0907PxTE1bACiJMGn58Nhm4tgxkMfFkPEpfi5VDxUgiWvt jE3NtbWojDwrRe4huoxXhp2t8XkU1gIzDEtsZPWZNyjM/MHlOEoXUPapl8rih 7mc1Ilh5o21v24umm7q93X4v9Y0UpxUBfq/4CaB9VF0LLf/n1uNuZ1qjqIUlfsc OtWtPX4xAn41Q5DF7cIjwm2xjYw/Foy24pTiSt7gceXuxiDdY2Y1QapR/TahJNdh 1QIDAQAB -----END PUBLIC KEY-----从私钥提取公钥 使用 openssl 命令从私钥提取公钥上面已经展示过程了它的公钥就是这样生成的 openssl rsa -pubout -in private-key.pem -out public-key.pem使用 ssh-keygen 命令从私钥提取公钥可以这样做 ssh-keygen -y -f myid_rsa compare_myid_rsa.pub结果文件 compare_myid_rsa.pub 和 myid_rsa.pub 的内容一模一样所以从私钥提取公钥可以作为检验密钥是否匹配的方法 OPENSSH和PEM两种密钥格式相互转化 之前说了ssh-keygen 和 openssl两个命令及生成的密钥区别现在讲讲两种密钥的联系OpenSSH 和 OpenSSL 使用的密钥对虽然有一些格式上的差异但可以相互转换。OpenSSH 使用自己的私钥和公钥格式, 而 OpenSSL 通常使用 PEM 格式可以通过下列命令转化 OpenSSH 格式私钥转换成 OpenSSL PEM 格式私钥 ssh-keygen -p -N -f myid_rsa -m PEM$ file myid_rsa myid_rsa: PEM RSA private key OpenSSL PEM 格式私钥转换成 OpenSSH 格式私钥 ssh-keygen -p -N -f myid_rsa$ file myid_rsa myid_rsa: OpenSSH private key OpenSSH 格式公钥生成 OpenSSL PEM 格式公钥 ssh-keygen -e -m PEM -f myid_rsa.pub new-public-key.pem$ file new-public-key.pem new-public-key.pem: ASCII text OpenSSL PEM 格式公钥生成 OpenSSH 格式公钥 ssh-keygen -i -m PKCS8 -f new-public-key.pem compare_myid_rsa.pub$ file compare_myid_rsa.pub compare_myid_rsa.pub: OpenSSH RSA public key 公钥和私钥的匹配使用 匹配使用公钥和私钥之前先准备一个测试文件 echo Hello World data.txt加密和解密 使用公钥加密 openssl rsautl -in data.txt -out data_enc.txt -inkey public-key.pem -pubin -encrypt使用私钥解密 openssl rsautl -in data_enc.txt -out data_dec.txt -inkey private-key.pem -decrypt两个命令执行后都没有任何控制台输出文件 data_enc.txt 中是加密后的内容文件 data_dec.txt 是解密后的内容成功解密后内容与 data.txt 文件内容一样 签名和验证 使用私钥签名 openssl dgst -sha256 -sign private-key.pem -out signature.bin data.txt使用公钥验证签名 openssl dgst -sha256 -verify public-key.pem -signature signature.bin data.txt验证通过后会在命令行输出 “Verified OK” 字样若不通过则输出 “Verification Failure” 字样 总结 验证公钥私钥是否匹配的最便捷的方法是通过私钥提取公钥来和原公钥进行对比公钥加密私钥解密私钥签名公钥验证签名需要把公钥发给别人私钥自己要保留好公钥和私钥常用的有OpenSSH和PEM两种格式这两种格式的密钥可以相互转化ssh-keygen 和 openssl 是两个不同的工具前者用于管理SSH密钥更具体后者使用范围更广更灵活 反爬链接请勿点击原地爆炸概不负责 事情一件件去办就好了『没什么大不了的』希望你长大后还可以经常乐观的说这句话一副俾睨天下的姿态
http://www.zqtcl.cn/news/927221/

相关文章:

  • 2017网站开发发展前景主页网站建设
  • 苏州手机网站建设费用上海企业制作网站
  • 网站上怎样做轮播图网站后台乱码怎么办
  • 专业网站建设品牌策划商务网站建设与维护考试
  • 网站开发手机版WordPress如何清空评论
  • 公司怎么建立网站吗010网站建设
  • 网站制作找哪家公司好湖北专业网站建设大全
  • 广州建设网站是什么关系wordpress 插件位置
  • 网站建设工作室 怎么样做一个网站需要多少钱
  • 北京网站制作人才免费企业网站源码
  • 微信商城网站怎么做网站备案是先做网站还是做完了备案
  • 工商局网站查询入口wordpress 文章列表顺序
  • 可以做平面设计兼职的网站模板商城建站
  • 织梦网站如何做301跳转畅销营销型网站建设电话
  • 新网企业邮箱保定seo
  • 河南国控建设集团招标网站网上注册公司核名流程
  • 推推蛙网站建设云南网站开发费用
  • 网站没服务器行吗价格低廉怎么换个说法
  • 用wordpress编写网站完整网站开发视频教程
  • 电商型网站建设价格ppt制作网站
  • 东莞做个网站查询工商营业执照
  • 从网址怎么看网站的域名租用云服务器多少钱
  • 网站开发技术有个人网页首页设计图片
  • 一站式网站建设平台做电商网站需要做什么准备
  • 网站开发小程序快站模板
  • 江苏集团网站建设智慧养老网站开发
  • 外网网址可以做英语阅读的网站怎么原创视频网站
  • 宁波网站建设流程图自己做网站可以揽业务吗
  • 赤峰市建设网站东胜做网站
  • 有口碑的坪山网站建设微信扫一扫登录网站如何做