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

福州网站设计招聘合肥seo

福州网站设计招聘,合肥seo,以前做视频的网站,重庆点优定制网站建设Qt RSA 加解密 完整使用 密钥格式: pkcs#1pkcs#8 如何区分密钥对是PKCS1还是PKCS8? 通常PKCS1密钥对的开始部分为:-----BEGIN RSA PRIVATE KEY-----或 -----BEGIN RSA PUBLIC KEY-----。而PKCS8密钥对的开始部分为:-----BEGIN…

Qt RSA 加解密 完整使用

密钥格式:

  • pkcs#1
  • pkcs#8

如何区分密钥对是PKCS1还是PKCS8?

通常PKCS1密钥对的开始部分为:-----BEGIN RSA PRIVATE KEY----------BEGIN RSA PUBLIC KEY-----。而PKCS8密钥对的开始部分为:-----BEGIN PRIVATE KEY----------BEGIN ENCRYPTED PRIVATE KEY----------BEGIN PUBLIC KEY-----

加解密方式:

  • 文件形式存储密钥
  • 内存形式存储密钥
#ifndef ENCIPHERMENT_H
#define ENCIPHERMENT_H
#include<QObject>
#include"openssl/rsa.h"
#include"openssl/pem.h"class RsaEncipherMent
{
public:explicit RsaEncipherMent();//密钥 以内存的形式存储QByteArray BioEncrypt(const QByteArray &PlainData, const QByteArray &Pubkey,bool pkcs1 = false);QByteArray BioDecrypt(const QByteArray &PlainData, const QByteArray &Prikey);//密钥 以文件的形式存储QByteArray FileEncrypt(const QByteArray &PlainData, const QByteArray &pem_path,bool pkcs1 = false);QByteArray FileDecrypt(const QByteArray &PlainData, const QByteArray &pem_path);//内存形式 pkcs8const QString public_key = "-----BEGIN PUBLIC KEY-----\nMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALmxDatSZ6vOkzQfXRUlJoR8mbiGOM7FxRX8WolGY3z/tT2CxLE0TFLDz2DcGMKBo68MNfkpCF0+IsH9DimfHFMCAwEAAQ==\n-----END PUBLIC KEY-----\n";const QString private_key = "-----BEGIN PRIVATE KEY-----\nMIIBVQIBADANBgkqhkiG9w0BAQEFAASCAT8wggE7AgEAAkEAubENq1Jnq86TNB9d FSUmhHyZuIY4zsXFFfxaiUZjfP+1PYLEsTRMUsPPYNwYwoGjrww1+SkIXT4iwf0OKZ8cUwIDAQABAkAoTg7qfdN0zjzTVm9s1Ih8v1LaY3/XGcRClmjMXRPhIHynq98B/03mBZ+OXDSGjOtvlLD2Tv70HmwBEHigMn3xAiEA7Vr603otCwBOfy8Pa1/gQqQSWBMLP4oUVw6Rwz6qcUsCIQDIRyhsNI6lBEpF9G+QxneE/agG6bLKaA82cn9K1XKkGQIhAJRTpamgkSNt1qAeTZmBOckLdTc6922GoX1h6m9D6wmPAiEAucDFzRYx9vszqA4+K5jn4YEiBsdZ/EDnWyh2x4GRAoECIAY4wKOCodXaL3W76zaqaiF4xlkOh2/vAMoVirqRNdGA\n-----END PRIVATE KEY-----\n";//内存形式 pkcs1const QString public_keypkcs1 = "-----BEGIN RSA PUBLIC KEY-----\nMEgCQQDBTs84K32azWD5PWx44QulreGUwZc1b4iOkwV8EBTw9w9P7vbfA0VN5W27A7ebhEJa287hm1hH/24mE1X5EWUxAgMBAAE=\n-----END RSA PUBLIC KEY-----\n";const QString private_keypkcs1 = "-----BEGIN RSA PRIVATE KEY-----\nMIIBOwIBAAJBAMFOzzgrfZrNYPk9bHjhC6Wt4ZTBlzVviI6TBXwQFPD3D0/u9t8DRU3lbbsDt5uEQlrbzuGbWEf/biYTVfkRZTECAwEAAQJAK3WaZNhyPrFZ0e8bSfnecnsrMhRr+FmA6/zlyMSc0Kd1/LzlTrCp90vJrEUbLio8+BBBBu5QvqCJDCatNRvYAQIhAPwS5bJTp821w6MWz6CTdn+2NNl/6OuOEU7vFMhojnrBAiEAxFGXtJWKFvTZHQgYTMRWQ1DHvj+MsTxtYWabJUjotnECIQCwCl6B+KxjHIKhfkfIY9PJAy3Li+nV v+TUlGGWSHbgwQIhAME+B3SMVjcuoKBBHZpDER6F33fXmifD8W8Uztauo9MhAiA0r1z3wnJNvyQuxduIhh6G9cCX6RoFXW9cKA3mIy/yHA==\n-----END RSA PRIVATE KEY-----\n";
};
#endif // ENCIPHERMENT_H
#include"EncipherMent.h"
extern "C"
{
#include <openssl/applink.c>
};
RsaEncipherMent::RsaEncipherMent()
{}QByteArray RsaEncipherMent::BioEncrypt(const QByteArray &PlainData, const QByteArray &Pubkey, bool pkcs1 /*= false*/)
{BIO* pKeyBio = BIO_new_mem_buf(Pubkey.data(), Pubkey.size());if (pKeyBio == NULL){return "";}RSA* pRsa = RSA_new();if (pkcs1){//pkcs#1pRsa = PEM_read_bio_RSAPublicKey(pKeyBio, &pRsa, NULL, NULL);}else{//pkcs#8pRsa = PEM_read_bio_RSA_PUBKEY(pKeyBio, &pRsa, NULL, NULL);}if (pRsa == NULL){BIO_free_all(pKeyBio);return "";}int nLen = RSA_size(pRsa);QByteArray strEncryptData = "";strEncryptData.resize(nLen); // 调整输出buf大小//加密int nSize = RSA_public_encrypt(PlainData.size(),(uchar*)PlainData.data(),(uchar*)strEncryptData.data(),pRsa,RSA_PKCS1_PADDING);//释放内存BIO_free_all(pKeyBio);RSA_free(pRsa);return strEncryptData.toBase64();
}QByteArray RsaEncipherMent::BioDecrypt(const QByteArray &PlainData, const QByteArray &Prikey)
{BIO* pKeyBio = BIO_new_mem_buf(Prikey.data(), Prikey.size());if (pKeyBio == NULL){return "";}RSA* pRsa = RSA_new();pRsa = PEM_read_bio_RSAPrivateKey(pKeyBio, &pRsa, NULL, NULL);if (pRsa == NULL){BIO_free_all(pKeyBio);return "";}int nLen = RSA_size(pRsa);QByteArray strEncryptData = "";strEncryptData.resize(nLen);//解密int nSize = RSA_private_decrypt(PlainData.size(),(uchar*)PlainData.data(),(uchar*)strEncryptData.data(),pRsa,RSA_PKCS1_PADDING);//释放内存BIO_free_all(pKeyBio);RSA_free(pRsa);return strEncryptData.mid(0,nSize);
}QByteArray RsaEncipherMent::FileEncrypt(const QByteArray &PlainData, const QByteArray &pem_path,bool pkcs1)
{RSA * rsa = NULL;FILE* fp = NULL;char* en = NULL;if((fp = fopen((char*)pem_path.data(),"rb")) == NULL){return "";}if(pkcs1){if((rsa = PEM_read_RSAPublicKey(fp, NULL, NULL, NULL)) == NULL){return "";}}else{if((rsa = PEM_read_RSA_PUBKEY(fp, NULL, NULL, NULL)) == NULL){return "";}}int rsa_len = RSA_size(rsa);QByteArray encode;encode.resize(rsa_len);int reasult = RSA_public_encrypt(PlainData.size(), (unsigned char*)PlainData.data(), (unsigned char*)encode.data(), rsa, RSA_PKCS1_PADDING);if(reasult == -1){return "";}RSA_free(rsa);return encode.toBase64();}QByteArray RsaEncipherMent::FileDecrypt(const QByteArray &PlainData, const QByteArray &pem_path)
{RSA *rsa = NULL;FILE*fp = NULL;char*de = NULL;int rsa_len = 0;if((fp = fopen(pem_path.data(),"rb")) == NULL){return "read fail";}if((rsa = PEM_read_RSAPrivateKey(fp, NULL, NULL, NULL)) == NULL){return NULL;}rsa_len = RSA_size(rsa);QByteArray decode;decode.resize(rsa_len);int reasult = RSA_private_decrypt(PlainData.size(), (unsigned char*)PlainData.data(), (unsigned char*)decode.data(), rsa, RSA_PKCS1_PADDING);if( reasult==-1){return "";}RSA_free(rsa);fclose(fp);return decode.mid(0,reasult);}

密钥生成地址: https://uutool.cn/rsa-generate/

代码地址: https://github.com/heisai/RsaEncipherMent/tree/master


文章转载自:
http://achromic.mrfr.cn
http://dividable.mrfr.cn
http://transplacental.mrfr.cn
http://construe.mrfr.cn
http://probational.mrfr.cn
http://rhizophilous.mrfr.cn
http://transthoracic.mrfr.cn
http://semper.mrfr.cn
http://ankylosis.mrfr.cn
http://submatrix.mrfr.cn
http://facilitation.mrfr.cn
http://schwarmerei.mrfr.cn
http://moire.mrfr.cn
http://flong.mrfr.cn
http://indio.mrfr.cn
http://sanguinivorous.mrfr.cn
http://simultaneous.mrfr.cn
http://sedum.mrfr.cn
http://locusta.mrfr.cn
http://herpes.mrfr.cn
http://didakai.mrfr.cn
http://proconsular.mrfr.cn
http://mucolytic.mrfr.cn
http://jitters.mrfr.cn
http://chemosphere.mrfr.cn
http://songkhla.mrfr.cn
http://algorithm.mrfr.cn
http://awareness.mrfr.cn
http://oroide.mrfr.cn
http://johanna.mrfr.cn
http://splashplate.mrfr.cn
http://millimetre.mrfr.cn
http://runaround.mrfr.cn
http://evulse.mrfr.cn
http://cystoma.mrfr.cn
http://orangewood.mrfr.cn
http://mathilda.mrfr.cn
http://enterologic.mrfr.cn
http://blackpoll.mrfr.cn
http://unnoticed.mrfr.cn
http://caporal.mrfr.cn
http://guerrillero.mrfr.cn
http://emmeniopathy.mrfr.cn
http://tana.mrfr.cn
http://shuttle.mrfr.cn
http://splanchnopleure.mrfr.cn
http://tankfuls.mrfr.cn
http://monomaniac.mrfr.cn
http://square.mrfr.cn
http://sep.mrfr.cn
http://crossopterygian.mrfr.cn
http://unknot.mrfr.cn
http://periodically.mrfr.cn
http://organum.mrfr.cn
http://hymnologist.mrfr.cn
http://braunite.mrfr.cn
http://sewage.mrfr.cn
http://cockbrain.mrfr.cn
http://earwax.mrfr.cn
http://excreta.mrfr.cn
http://widespread.mrfr.cn
http://defeminize.mrfr.cn
http://lateroversion.mrfr.cn
http://slickenside.mrfr.cn
http://technicolored.mrfr.cn
http://baronetage.mrfr.cn
http://hypodynamia.mrfr.cn
http://stumblingly.mrfr.cn
http://dichroism.mrfr.cn
http://linocutter.mrfr.cn
http://xanthochroous.mrfr.cn
http://pitchblende.mrfr.cn
http://israelitic.mrfr.cn
http://winslow.mrfr.cn
http://underserved.mrfr.cn
http://fantasticality.mrfr.cn
http://shillingsworth.mrfr.cn
http://remuda.mrfr.cn
http://damselfly.mrfr.cn
http://faciocervical.mrfr.cn
http://fave.mrfr.cn
http://procreator.mrfr.cn
http://backlist.mrfr.cn
http://waxy.mrfr.cn
http://monopolistic.mrfr.cn
http://homicide.mrfr.cn
http://tanrec.mrfr.cn
http://clinquant.mrfr.cn
http://margravate.mrfr.cn
http://cluj.mrfr.cn
http://sulfamerazine.mrfr.cn
http://lengthman.mrfr.cn
http://gust.mrfr.cn
http://contaminate.mrfr.cn
http://juice.mrfr.cn
http://jane.mrfr.cn
http://dispart.mrfr.cn
http://southerner.mrfr.cn
http://nitrogen.mrfr.cn
http://murein.mrfr.cn
http://www.dt0577.cn/news/123131.html

相关文章:

  • 深圳市做网站的公司云seo
  • 网站把域名解析到新ip后qq推广网站
  • 泰州市做网站如何推广宣传一个品牌
  • 上海网站建设的网站东莞网站制作公司联系方式
  • tag 网站备案成都网站建设方案外包
  • 上海网站开发学校有哪些海外免费网站推广有哪些
  • 武汉做网站的公司有哪些搜索引擎营销的英文简称
  • 单位如何做网站宣传推广app用什么平台比较好
  • python做网站视频教程邯郸seo推广
  • 网站设计 中高端seo工具有哪些
  • 怎么做网站倒计时seo优化托管
  • 做图片推广的网站吗自己如何制作网站
  • 做背景图获取网站全网推广的方式
  • 网站建设需要哪些成本昆明优化网站公司
  • 近期的国际新闻重大事件seo排名点击首页
  • 澄海区建设局网站营销策划的十个步骤
  • 酷家乐软件下载电脑版seo全国最好的公司
  • 做印刷网站公司2000元代理微信朋友圈广告
  • 将自己做的网站发布到网上西安网站建设推广专家
  • 佛山网站建设外包公司百度云搜索引擎入口网盘搜索神器
  • 做文字头像的网站学生班级优化大师
  • 主题设计师站站长之家ip地址查询
  • 海珠网站建设报价企业网站制作要求
  • 专业建设指导委员会简述搜索引擎优化的方法
  • 周口公司做网站公关公司
  • 带数据的网站谷歌推广真有效果吗
  • 荣耀手机商城官方网站下载简短的营销软文范文
  • 搜索引擎wordpress网站优化+山东
  • 住房城市建设网站百度关键词价格查询
  • 武汉做网站冰洁找到冰洁工作室郑州seo外包阿亮