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

汇泽网站建设物流公司网站模板

汇泽网站建设,物流公司网站模板,建设网站需要做app吗,wordpress游戏资讯一、【原理简介】非对称加密 非对称加密#xff0c;也被称为公钥加密#xff0c;其中使用一对相关的密钥#xff1a;一个公钥和一个私钥。公钥用于加密数据#xff0c;私钥用于解密数据。公钥可以公开分享#xff0c;而私钥必须保密。 密钥生成: 当一个用户或设备希望使用…一、【原理简介】非对称加密 非对称加密也被称为公钥加密其中使用一对相关的密钥一个公钥和一个私钥。公钥用于加密数据私钥用于解密数据。公钥可以公开分享而私钥必须保密。 密钥生成: 当一个用户或设备希望使用非对称加密时要生成一对密钥一个公钥和一个私钥。这两个密钥是数学上相关的但从公钥中计算出私钥在计算上是不可行的。 加密过程: 发送方使用接收方的公钥对消息进行加密。只有持有与那个公钥相对应的私钥的人在这种情况下是接收方才能解密这个消息。 解密过程: 接收方使用其私钥对接收到的加密消息进行解密以恢复原始消息。 安全性: 即使攻击者知道公钥并且他们拦截了加密的消息但由于他们没有私钥所以他们不能解密那个消息。这提供了保密性。由于私钥不是公开的因此无法用它来伪造加密的消息。 数字签名: 除了保密性外非对称加密还可以用于数字签名。发送方使用其私钥对消息的哈希进行加密产生一个数字签名。接收方可以使用发送方的公钥来验证签名确保消息是从发送方发出的并且没有被修改。 主要算法: RSA、ElGamal、ECC椭圆曲线加密是非对称加密的主要算法。 性能问题: 与对称加密相比非对称加密通常计算上更加昂贵所以它在处理大量数据时可能不太实用。在实际场景中经常使用非对称加密来交换一个对称密钥如AES密钥然后使用对称加密来加密实际的数据。 公钥基础设施PKI: PKI是一个结合硬件、软件、策略和标准以实现公钥加密和数字签名服务的体系结构。它包括证书颁发机构CA负责颁发和验证数字证书。 总结非对称加密使用一对密钥来确保数据的安全性和完整性。公钥用于加密而私钥用于解密或签名。 二、【代码】生成秘钥对文件 和 读取秘钥对加密、加密 example 1 生成秘钥对 #include stdio.h #include openssl/pem.h #include openssl/rsa.h/* compile : gcc createRSA_KeyPair.c -I./include -L./lib -lcrypto -Wl,-rpath./lib */ int main() {int ret 0;RSA *r NULL;BIGNUM *bne NULL;int bits 2048;unsigned long e RSA_F4;// 1. 生成 RSA 密钥对bne BN_new();ret BN_set_word(bne, e);if(ret ! 1) {goto free_all;}r RSA_new();ret RSA_generate_key_ex(r, bits, bne, NULL);if(ret ! 1) {goto free_all;}// 2. 保存私钥到 PEM 文件FILE *fp fopen(private_key.pem, wb);if(fp NULL) {perror(Unable to open private key file for writing);goto free_all;}PEM_write_RSAPrivateKey(fp, r, NULL, NULL, 0, NULL, NULL);fclose(fp);// 3. 保存公钥到 PEM 文件fp fopen(public_key.pem, wb);if(fp NULL) {perror(Unable to open public key file for writing);goto free_all;}PEM_write_RSA_PUBKEY(fp, r);fclose(fp);free_all:RSA_free(r);BN_free(bne);return 0; }example 2 使用秘钥对加密、解密 #include stdio.h #include openssl/pem.h #include openssl/rsa.h/* compile : gcc keyFromFile.c -I./include -L./lib -lcrypto -Wl,-rpath./lib */ int main() {// 加载公钥FILE* pubKeyFile fopen(public_key.pem, rb);RSA* rsaPublicKey PEM_read_RSA_PUBKEY(pubKeyFile, NULL, NULL, NULL);fclose(pubKeyFile);// 加载私钥FILE* privKeyFile fopen(private_key.pem, rb);RSA* rsaPrivateKey PEM_read_RSAPrivateKey(privKeyFile, NULL, NULL, NULL);fclose(privKeyFile);const char* plainText Hello, OpenSSL!;char encrypted[4098] {};char decrypted[4098] {};// 使用公钥加密int encryptedLength RSA_public_encrypt(strlen(plainText), (unsigned char*)plainText,(unsigned char*)encrypted, rsaPublicKey, RSA_PKCS1_OAEP_PADDING);if (encryptedLength -1) {printf(Public Encrypt failed \n);return 0;}// 使用私钥解密int decryptedLength RSA_private_decrypt(encryptedLength, (unsigned char*)encrypted,(unsigned char*)decrypted, rsaPrivateKey, RSA_PKCS1_OAEP_PADDING);if (decryptedLength -1) {printf(Private Decrypt failed \n);return 0;}decrypted[decryptedLength] \0;printf(Original: %s\n, plainText);printf(Decrypted: %s\n, decrypted);RSA_free(rsaPublicKey);RSA_free(rsaPrivateKey);return 0; }三、【代码】代码内生成秘钥对并加密解密 c风格 #include stdio.h #include string.h #include openssl/pem.h #include openssl/rsa.h/* compile : gcc RSA.c -I./include -L./lib -lcrypto -Wl,-rpath./lib */ int main() {// 1. create keyint ret 0;RSA *rsa NULL;BIGNUM *bne NULL;int bits 2048;unsigned long e RSA_F4;bne BN_new();ret BN_set_word(bne, e);if(ret ! 1) {goto free_all;}rsa RSA_new();ret RSA_generate_key_ex(rsa, bits, bne, NULL);if(ret ! 1) {goto free_all;}// 2. encryptoconst char* plainText Hello, OpenSSL!;char encrypted[4098] {};int encryptedLength RSA_public_encrypt(strlen(plainText) 1, (unsigned char*)plainText,(unsigned char*)encrypted, rsa, RSA_PKCS1_OAEP_PADDING);if(encryptedLength -1) {printf(Public Encrypt failed \n);goto free_all;}// 3. decryptochar decrypted[4098] {};int decryptedLength RSA_private_decrypt(encryptedLength, (unsigned char*)encrypted,(unsigned char*)decrypted, rsa, RSA_PKCS1_OAEP_PADDING);if(decryptedLength -1) {printf(Private Decrypt failed \n);goto free_all;}decrypted[decryptedLength] \0;printf(Original: %s\n, plainText);printf(Decrypted: %s\n, decrypted);free_all:RSA_free(rsa);BN_free(bne);return 0; }C风格 #include iostream #include vector #include stdexceptextern C{ #include openssl/pem.h #include openssl/rsa.h }class RSAWrapper { public:RSAWrapper() {rsa RSA_new();bne BN_new();BN_set_word(bne, RSA_F4);RSA_generate_key_ex(rsa, 2048, bne, nullptr);}~RSAWrapper() {RSA_free(rsa);BN_free(bne);}std::vectorunsigned char encrypt(const std::string plainText) {std::vectorunsigned char encrypted(RSA_size(rsa));int encryptLength RSA_public_encrypt(plainText.size(),reinterpret_castconst unsigned char*(plainText.c_str()),encrypted.data(),rsa,RSA_PKCS1_OAEP_PADDING);if (encryptLength -1) {throw std::runtime_error(Error during encryption);}return encrypted;}std::string decrypt(const std::vectorunsigned char cipherText) {std::vectorunsigned char decrypted(RSA_size(rsa));int decryptLength RSA_private_decrypt(cipherText.size(),cipherText.data(),decrypted.data(),rsa,RSA_PKCS1_OAEP_PADDING);if (decryptLength -1) {throw std::runtime_error(Error during decryption);}return std::string(reinterpret_castchar*(decrypted.data()));}private:RSA *rsa;BIGNUM *bne; };/* compile : g -stdc11 RSA.cpp -I./include -L./lib -lcrypto -Wl,-rpath./lib */ int main() {try {RSAWrapper rsaWrapper;std::string plainText Hello, OpenSSL C!;auto encrypted rsaWrapper.encrypt(plainText);auto decrypted rsaWrapper.decrypt(encrypted);std::cout Original Text: plainText std::endl;std::cout Decrypted Text: decrypted std::endl;} catch (const std::exception e) {std::cerr Error: e.what() std::endl;}return 0; }
http://www.hkea.cn/news/14335946/

相关文章:

  • 那些域名可以做后缀做网站网站建设 运维 管理包括哪些
  • 开发网站所用技术速成网站-
  • 郑州建设网站设计wordpress上传图片权限
  • 网站的默认首页网站建设行业市场分析
  • 安卓网站客户端制作购物网站排行榜
  • 山东公司网站推广优化国外域名 网站备案
  • 湖南 网站建设房城乡建设部网站
  • 聊城网站空间公司网站301了不知道在哪做的
  • 手淘网站建设需求分析网站海外推广技巧
  • 网站 内容优化婚礼婚庆网站建设
  • 优化培训学校网站百度关键词优化
  • 品牌网站建站公司在线手机动画网站模板下载安装
  • 深圳个人网站制作网站建设需要会什么
  • 常熟公司做网站外网常用网站
  • 江西网站建设找哪家高质量视频素材网站
  • 广州移动网站开发青海个人旅游网站建设
  • 河南经天路桥建设总公司网站网站制作怎样容易
  • 有免费做门户网站吗百度百科怎么创建
  • 品牌建设专家库推荐表宁波正规seo推广
  • 锦州做网站哪家好wordpress 后台显示id
  • php在网站制作中的运行机制拼团做的比较好的网站
  • 中国工程建设协会网站老版本hao123上网导航
  • 如何查看网站架构做问卷赚钱最好似网站
  • 新会住房和城乡建设部网站城阳网站建设公司
  • 邵阳建设银行网站装修公司网站模版
  • 旅游网站模板 手机手机h5页面制作
  • 深圳建网站一般多少钱北京建网
  • 旅游网站开发报价单什么网站容易收录
  • 南京有名的网站建设公司公司企业邮箱有哪些
  • 西安的网站建设公司免费咨询律师电话