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

怎么做网站架构图自己做的网站手机不能看

怎么做网站架构图,自己做的网站手机不能看,网站开发人员选项,网站开发项目流程设计背景 RSA这种非对称加密被广泛的运用于网络数据的传输#xff0c;但其在iOS上很难直接实现#xff0c;BBRSACryptor框架通过移植openssl实现了iOS端的RSA#xff0c;本文将介绍如何使用BBRSACryptor生成证书#xff0c;加载公钥#xff0c;以及后端如何用php读取证书… 背景 RSA这种非对称加密被广泛的运用于网络数据的传输但其在iOS上很难直接实现BBRSACryptor框架通过移植openssl实现了iOS端的RSA本文将介绍如何使用BBRSACryptor生成证书加载公钥以及后端如何用php读取证书加载私钥。 iOS加密 新建工程并集成BBRSACryptor 这个框架自带的demo将工程文件与框架放在了同一目录因此在配置Header Search Paths时没有包含工程文件夹一定注意下面新建的工程将框架放在了工程文件夹内因此头文件寻找路径需要包含上工程目录。详细步骤如下。 1. 新建一个iOS工程将BBRSACryptor、GTMBase64、OpenSSL三个文件夹拖入工程目录结构如下。 2.在Build Settings中配置Header Search Pathes。 注意最前面的文件夹名称要和自己的工程名相同 3.打开BBRSACryptor.m文件修改存储证书的目录和文件路径默认的是隐藏目录前加点为了方便查看与复制证书建议将路径前面的点去掉例如 #define OpenSSLRSAKeyDir [DocumentsDir stringByAppendingPathComponent:openssl_rsa] #define OpenSSLRSAPublicKeyFile [OpenSSLRSAKeyDir stringByAppendingPathComponent:publicKey.pem] #define OpenSSLRSAPrivateKeyFile [OpenSSLRSAKeyDir stringByAppendingPathComponent:privateKey.pem] 4.打开ViewController.m导入BBRSACryptor.h和GTMBase64.h使用下面的代码生成证书。 BBRSACryptor *rsaCryptor [[BBRSACryptor alloc] init]; [rsaCryptor generateRSAKeyPairWithKeySize:1024]; 运行后在控制台会打印出证书路径进入路径后可以看到公钥和私钥证书。 5.使用TextEdit打开公钥证书将—–BEGIN PUBLIC KEY—–和—–END PUBLIC KEY—–之间的部分复制然后在工程中新建一个宏来保存这个公钥以便后续读取。 #define PublicKey \ MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjYyZoASYgTMIc/5YkSJngRbNYEQEI3UF7RVijF0STcMs93pH0qhjLJIQnsvUn2ghEVM4XStQ0XhS7tmL1UMEFgDgYwG/xr/ZjUozgQyvqeUejA08pbun0E0/Yx9WuBQfCpCc5vNka/ENDZEy/2PbEO5KD3hgsnH1JyNqNnwIDAQAB 客户端仅保存公钥即可私钥放在服务器上。使用php可以直接读取证书。 6.在客户端加载公钥与进行加密 前面已经创建了宏以后通过宏即可加载公钥。如下 BBRSACryptor *rsaCryptor [[BBRSACryptor alloc] init]; // PublicKey是从公钥证书中复制的内容创建的宏见上文。 [rsaCryptor importRSAPublicKeyBase64:PublicKey]; NSData *data [rsaCryptor encryptWithPublicKeyUsingPadding:RSA_PADDING_TYPE_PKCS1 plainData:[客户端加密的内容 dataUsingEncoding:NSUTF8StringEncoding]]; NSString *baseStr [GTMBase64 stringByEncodingData:data]; NSLog(%,baseStr); 先加载公钥然后把要加密的内容转换成NSData加密后的内容先进行base64编码后再传输。为了验证能够解密最后对base64编码的加密内容进行了打印将这个内容先复制到剪贴板后面贴在php中进行解密。 php解密 为了方便将按照上文方法生成的私钥证书复制到服务器的某个目录并在这个目录下创建一个php文件并添加如下代码 ?phpheader(Content-type:text/html; charsetutf-8);/*** 密钥文件的路径*/$privateKeyFilePath privateKey.pem;/*** 公钥文件的路径*/$publicKeyFilePath publicKey.pem;extension_loaded(openssl) or die(php需要openssl扩展支持);(file_exists($privateKeyFilePath) file_exists($publicKeyFilePath))or die(密钥或者公钥的文件路径不正确);/*** 生成Resource类型的密钥如果密钥文件内容被破坏openssl_pkey_get_private函数返回false*/$privateKey openssl_pkey_get_private(file_get_contents($privateKeyFilePath));/*** 生成Resource类型的公钥如果公钥文件内容被破坏openssl_pkey_get_public函数返回false*/$publicKey openssl_pkey_get_public(file_get_contents($publicKeyFilePath));($privateKey $publicKey) or die(密钥或者公钥不可用);// 这段内容来自上面iOS端打印的加密内容的base64编码$encryptData J0oTqBCNbsJauVwRz380y519sSa7ficUO1NvRKiMGKUGJF0pomOu20fHqC77NmsKle9/L4DyYNr3xDgDa4SpO0in39rA9EYXzmx3rlyI1c8iPjAkQ6XpwZk7BsThiCFB/6QmkTW5pMIo4b0axRv/4lq1Rqx/YtuIsGkXQTNntI;$ee base64_decode($encryptData);$decryptData ;if (openssl_private_decrypt($ee, $decryptData, $privateKey)) {echo 解密成功解密后数据为:, $decryptData, PHP_EOL;} else {die(解密成功);} ? 访问这个脚本如果前面做的没有问题会得到解密的结果 php加密 使用私钥加密后可以在客户端利用公钥解密。使用下面的代码进行加密。 ?phpheader(Content-type:text/html; charsetutf-8);/*** 密钥文件的路径*/$privateKeyFilePath privateKey.pem;/*** 公钥文件的路径*/$publicKeyFilePath publicKey.pem;extension_loaded(openssl) or die(php需要openssl扩展支持);(file_exists($privateKeyFilePath) file_exists($publicKeyFilePath))or die(密钥或者公钥的文件路径不正确);/*** 生成Resource类型的密钥如果密钥文件内容被破坏openssl_pkey_get_private函数返回false*/$privateKey openssl_pkey_get_private(file_get_contents($privateKeyFilePath));/*** 生成Resource类型的公钥如果公钥文件内容被破坏openssl_pkey_get_public函数返回false*/$publicKey openssl_pkey_get_public(file_get_contents($publicKeyFilePath));($privateKey $publicKey) or die(密钥或者公钥不可用); $originalData 服务器加密的内容;/*** 加密以后的数据用于在网路上传输*/$encryptData ;echo 原数据为:, $originalData, PHP_EOL;///用私钥加密if (openssl_private_encrypt($originalData, $encryptData, $privateKey)) {echo 加密成功加密后数据(base64_encode后)为:, base64_encode($encryptData), PHP_EOL;} else { die(加密失败); } ? 访问脚本后会打印出加密的base64编码将这个编码复制到客户端进行解密来验证可用性。 iOS解密 要在iOS端解密和加密类似先加载公钥然后把base64编码的加密内容解码解密后转为NSString即可。 BBRSACryptor *rsaCryptor [[BBRSACryptor alloc] init]; [rsaCryptor importRSAPublicKeyBase64:PublicKey]; NSData *enCryptorDataBase64 [aWdbPQHiQzU5CUOAIGQT3OD/MPqcqoXHXDFtYQPVRo9/Mb1S/aVcKQVHDjBpLgfzw0mWxgHN6SuOfH8z9WobgQrTZhpxhau3DnfukLmENGPWVMqquWMxTkEU7yCkx/RI7XEwv3jk9d4UgFOv35eqNUgYyWDq2gGatEpfnUg6U dataUsingEncoding:NSUTF8StringEncoding]; NSData *deCryptorData [rsaCryptor decryptWithPublicKeyUsingPadding:RSA_PADDING_TYPE_PKCS1 cipherData:[GTMBase64 decodeData:enCryptorDataBase64]]; NSLog(%,[[NSString alloc] initWithData:deCryptorData encoding:NSUTF8StringEncoding]); 不出意外的话控制台将会打印出解密后的内容。 转载于:https://www.cnblogs.com/aiwz/p/6154011.html
http://www.pierceye.com/news/116395/

相关文章:

  • 招聘网站开发源码广州服务类拓客软件
  • 婚庆策划公司加盟江门关键词优化价格
  • 百度网站入口ps网页设计实验报告
  • 做网站准备材料怎么做优化网站排名
  • asp技校网站手游网页版
  • 网站建设合同要交印花税吗烟台网站的建设
  • 可以做锚文本链接的网站广告公司创意广告语
  • 建设网站的题目旅游网页素材
  • 做网站很难吗新手学做网站 pdf
  • 建设电影推荐网站的项目背景网站开发的公司电话
  • 建设银行 福建分行招聘网站cctv5体育现场直播
  • 网站那个做的比较好的微信辅助网站制作
  • 网站设计大全推荐wordpress后台登录
  • 网站运营与数据分析网站开发学习什么
  • 上海网站备案在哪里查询网站建设哪家稳妥
  • 建设网站做什么赚钱网站制作.
  • 小企业公司网站怎么建做网站英文编辑有前途吗
  • 优化图片传网站wordpress背景图片
  • 网站服务器哪家好些外包做网站不付尾款
  • 建站系统wordpress下载哪个公司的微信商城系统
  • 网站建设app开发合同深圳企业网站制作设计方案
  • 免费网站整站模板下载寻找做网站
  • 做此广告的网站做家纺的网站
  • 湖南畅想网站建设个人网站建设基本定位
  • 建站公司外包钓鱼网站怎么做
  • 个人网站logo需要备案吗鑫灵锐做网站多少钱
  • .xyz做网站怎么样网站产品预算
  • 建网站先要申请网址吗做网站给文件不侵权
  • 一元夺宝网站建设Wordpress 普通图片裁剪
  • 网站推广都有哪些自己有网站怎么优化