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

网站分析对比企业速成网站

网站分析对比,企业速成网站,自适应网站开发书籍,营销培训课程ppt一、【原理简介】非对称加密 非对称加密#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.zqtcl.cn/news/348688/

相关文章:

  • 旅游网站系统哪个好城市建设投资公司网站
  • 制作图片海报的软件关键词seo公司
  • 济南企业网站推广方法wordpress 类别 排序
  • 深圳网站建设开发公司哪家好wordpress 删除主题作者
  • 网站怎么登陆后台wordpress卡蜜 插件
  • wordpress安装微信登录插件青岛网站seo技巧
  • 燕郊个人做网站超变传奇手游刀刀切割无会员散人
  • 有没有可以做兼职的网站网站建设发展方向有哪些
  • php网站后台上传图片有没有推荐到首页的功能客户求购平台
  • 大型网站的标准莱芜市官网
  • 建站用Wordpress还是青州网站建设青州
  • 百度网站收录更新建网站的公司赚钱吗
  • 哪种语言做网站最快网站大全app下载
  • 手机营销网站制作网站建设备案和免备案的区别
  • 浙江省住房和城乡建设厅网站打不开中国建设银行官网站纪念币预约
  • 推广软件的网站安徽省城乡建设网站
  • 用网站做淘宝客怎么样珍爱网
  • 龙岩建设局招聘网站网站dns解析失败
  • 音乐网站的音乐怎么做深圳美容网站建设
  • 贵阳市观山湖区网站建设wordpress博客vieu模板
  • 怎么区分网站的好坏网站建设营销型号的区别
  • wordpress固定链接 中文建设网站优化
  • 东莞地产网站建设简述建设iis网站的基本过程
  • 外贸网站建设 公司价格怎样在手机上制作网站
  • 网站建设电话销售录音企业做网站有什么用
  • 网站布局设计软件软件工程大学排名
  • 自己的网站做防伪码深圳软件开发公司招聘
  • 网上购物网站大全wordpress文本悬停变色
  • 科技类公司网站设计如何做各大网站广告链接
  • 深圳做h5网站制作奢侈品网站设计