开发一款app得多少钱/嘉峪关seo
1.JSON(JavaScript Object Notation)
JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。JSON通过简单的key-value键值对来描述数据,可以被广泛用于网络通信、数据存储等各种应用场景,被广泛应用于互联网前后端数据交互与传输之中。
例如,在web应用中客户端向服务器发送一个HTTP请求并期望返回一些数据时,服务器可以使用JSON作为响应的数据格式,将数据以JSON的形式返回给你。以下是一个实际的JSON数据示例:
{
"name": "John",
"age": 30,
"city": "New York",
"email": "john@example.com"
}
上面的JSON数据描述了一个人的信息,包括姓名、年龄、所在城市和电子邮件地址。在网络通信中,你可以使用这个JSON数据在客户端和服务器之间传输,以便在你的应用程序中展示或处理这些数据。
目前常见的对JSON数据进行加密保护的方法:
(1)使用HTTPS协议进行数据传输可以提供端到端的加密保护。HTTPS使用SSL/TLS协议对通信数据进行加密,确保数据在传输过程中被加密,并且只有发送方和接收方能够解密和读取传输的数据。
(2)使用加密算法,如AES或RSA等,对JSON数据进行加密。发送方使用公钥加密数据,接收方使用私钥解密数据。这样可以确保只有有权访问私钥的接收方才能解密和读取数据。
(3)使用数字签名来验证JSON数据的完整性和真实性。发送方使用私钥对JSON数据进行签名,接收方使用发送方的公钥验证签名的有效性。这样可以确保接收到的数据没有被篡改,并且是发送方发送的真实数据。
2.国密JSON数据保护相关标准
(1)《GMT 0125.1-2022 JSON Web 密码应用语法规范第1部分 算法标识》
定义JSON web密码应用的算法标识,包括数字签名算法标识、消息鉴别算法标识、密钥加密密钥算法标识、内容加密算法标识。
类别 | 标识 | 说明 |
数字签名算法标识 | SGD_SM3_SM2 | 基于SM3和SM2的数字签名算法 |
消息鉴别算法标识 | SGD_SM3_HMAC | 基于SM3的消息鉴别算法 |
密钥加密密钥算法标识 | SGD_SM2_3 | SM2公钥加密算法 |
密钥加密密钥算法标识 | SGD_SM9_3 | SM9加密算法 |
内容加密算法标识 | SGD_SM4_CCM | 基于SM4算法CCM加密算法 |
内容加密算法标识 | SGD_SM4_GCM | 基于SM4算法GCM加密算法 |
(2)《GMT 0125.4-2022 JSON Web 密码应用语法规范第4部分 密钥》
JWK(JSON Web Key)是标识密钥信息的JSON对象,具体参数定义如下。
参数名称 | 类型 | 要求 | 参数取值 | 说明 |
kty | 字符串 | 必选 | EC | ECC密钥类 |
kty | 字符串 | 必选 | oct | 对称密钥或字符串类 |
crv | 字符串 | kty取值EC | sm2p256v1 | sm2算法曲线 |
crv | 字符串 | kty取值EC | sm9curve | sm9算法曲线 |
x | 字符串 | kty取值EC,crv取sm2p256v1 | base64url编码 | sm2算法公钥x取值 |
y | 字符串 | kty取值EC,crv取sm2p256v1 | base64url编码 | sm2算法公钥y取值 |
id | 字符串 | kty取值EC,crv取sm9curve | base64url编码 | sm9用户标识 |
hid | 整数 | kty取值EC,crv取sm9curve | 无符号整数 | sm9私钥生成函数标识 |
x_pub | 字符串 | kty取值EC,crv取sm9curve | base64url编码 | sm9主公钥x坐标 |
y_pub | 字符串 | kty取值EC,crv取sm9curve | base64url编码 | sm9主公钥y坐标 |
k | 字符串 | kty取值oct | base64url编码 | 对称密钥 |
use | 字符串 | key取值EC(可选) | sig | 公钥用法,签名 |
use | 字符串 | key取值EC(可选) | enc | 公钥用法,加密 |
key_ops | 数组 | 可选 | sign verigy encrypt decrypt wrapKey unwrapKey deriveKey deriveBits | 密钥操作字符串数组 |
alg | 字符串 | 可选 | SGD_SM3_SM2 SGD_SM3_HMAC | 标识密钥相关参数 |
kid | 字符串 | 可选 | ID | 密钥ID |
x5u | 字符串 | 可选 | URI | 证书URL |
x5c | 数组 | 可选 | JSON字符串数组 | 证书链 |
x5t#sm3 | 字符串 | 可选 | base64url编码 | 证书sm3杂凑值 |
最后,参数keys表示一个JWK集合,例如如下JWK集合中包含
(1)SM2签名公钥
(2)SM2加密公钥
(3)对称密钥(用于SM3-HMAC的key)
(4)SM2验签证书
{
"keys":
[
{
"kty":"EC"
"crv":"sm2p256v1"
"usg":"sig"
"x":"KkiOvc0rfJKjVEDwrSzhPCJiZS0-H32KDeBk3_RZ2PQ"
"y":"BxAmH6GXCTbD_VMhBDIwHUHJgE5AMGmZguPIus9ve_8"
},
{
"kty":"EC"
"crv":"sm2p256v1"
"usg":"enc"
"x":"1atDIhF_9PQPSjwmx3KUMZcUM9TPrGQ95oakHKpxW_0"
"y":"cDImanzNUiT_t7lxIvCR6ooYsRlJqSDGW3XGbiQr5Kg"
},
{
"kty":"oct"
"alg":"SGD_SM3_HMAC"
"k":"NiWEDbx7DGGMXMkWyePWtd64R8Y10hf4OdA4alcfGPA"
},
{
“kty”:"EC"
"crv":"sm2p256v1"
"use":"sig"
"x5c":
["MIIClzCCAjygAwIBAgIQdd/IVUqMA6s1z1nouGE7njAMBggqgRzPVQGDdQUAMC4xCzAJBgNVBAYTAkNOMQ4wDAYDVQQKDAVOUkNBQzEPMA0GA1UEAwwGUk9PVENBMB4XDTEzMDExNjExMDczMVoXDTMzMDExMTExMDczMVowRDELMAkGA1UEBhMCQ04xDTALBgNVBAoMBEJKQ0ExDTALBgNVBAsMBEJKQ0ExFzAVBgNVBAMMDkJlaWppbmcgU00yIENBMFkwEwYHKoZIzj0CAQYIKoEcz1UBgi0DQgAEioqqRw0qmjPYUF+6SWgWI1JzDHPGO0iTjSa5m0MuR/QB83yLBknccZ3T1qwdgv27e3qqKMdA3U3ipZkz6qxVk6OCASIwggEeMB8GA1UdIwQYMBaAFEwysZfZMxvEpgXBxuWLYlvwl3ZYMA8GA1UdEwEB/wQFMAMBAf8wgboGA1UdHwSBsjCBrzBBoD+gPaQ7MDkxCzAJBgNVBAYTAkNOMQ4wDAYDVQQKDAVOUkNBQzEMMAoGA1UECwwDQVJMMQwwCgYDVQQDDANhcmwwKqAooCaGJGh0dHA6Ly93d3cucm9vdGNhLmdvdi5jbi9hcmwvYXJsLmNybDA+oDygOoY4bGRhcDovL2xkYXAucm9vdGNhLmdvdi5jbjozODkvQ049YXJsLE9VPUFSTCxPPU5SQ0FDLEM9Q04wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBQf5s/Uj8UiKpdKKYoV5xbJkjTEtjAMBggqgRzPVQGDdQUAA0cAMEQCIFiMoH1BR7I3DmlPk5uhui/W2cX6iPAdnXI4LSPUg9T9AiB06XDp+wsPScMBYzRuY5xBC7IiC+nj+ehMDmkLD4mXKg=="]
}
]
}
(3)《GMT 0125.2-2022 JSON Web 密码应用语法规范第2部分 数字签名》
JWS是使用JSON方式来表示对消息数据的数字签名或消息鉴别码的数据结构,JWS由JOSE头、JWS有效载荷和JWS签名组成。
JOSE头部参数定义
消息数据的紧凑序列化结果形式为:(仅支持一个签名或消息鉴别码)
base64url(UTF8(JWS保护头部)||'.'||base64url(JWS有效载荷)||'.'||(JWS签名)
消息数据的JSON序列化有两种形式,通用JSON序列化和扁平JSON序列化,前者可以包含一个签名对象组,后者只能表示一个JWS签名对象。
通用JSON序列化
扁平JSON序列化
SM2签名实例
字段 | 内容 |
有效载荷(明文) | message digest |
有效载荷编码(base64url) | bWVzc2FnZSBkaWdlc3Q |
签名算法(标识) | SGD_SM3_SM2 |
sm2数字证书(base64) | 如上(MIIClzCCAjyg......mXKg==) |
sm2数字证书sm3杂凑值(base64url) | l3n9tvTLguEXRout0wKFp55IGEEMf0DMrCyijdXzcyg |
JOSE头部 | { "alg":"SGD_SM3_SM2", "x5t#sm3":"l3n9tvTLguEXRout0wKFp55IGEEMf0DMrCyijdXzcyg" } |
JOSE头部编码(base64url) | e8KgImFsZyI6IlNHRF9TTTNfU00yIu-8jCJ4NXQjc20zIjoibDNuOXR2VExndUVYUm91dDB3S0ZwNTVJR0VFTWYwRE1yQ3lpamRYemN5ZyJ9 |
待签名对象M | JOSE头部编码.有效载荷编码 |
M的签名结果(base64url) | pcQI2trgy0Y-nCrl1C1Z5VPCLbNPQcq8ouF3lUANFVQMozHPv5aNHCQzeOv8ysplYSfLLYoVWQxut2eWHtwriA |
SM3消息鉴别码实例
字段 | 内容 |
有效载荷(明文) | message hmac |
有效载荷编码(base64url) | bWVzc2FnZSBobWFj |
算法标识 | SGD_SM3_HMAC |
Key(hex) | 59276E27D506861A16680F3AD9C02DCCEF3CC1FA3CDBE4CE6D54B80DEAC1BC21 |
JOSE头部 | { "alg":"SGD_SM3_HMAC" } |
JOSE头部编码(base64url) | eyJhbGciOiJTR0RfU00zX0hNQUMifQ |
验证码输入参数M | eyJhbGciOiJTR0RfU00zX0hNQUMifQ.bWVzc2FnZSBobWFj |
HMAC(base64url) | XFLRB4aC6o3zQrh55vfAzswuHVLfuwFhyAonMV24Qss |
(4)《GMT 0125.3-2022 JSON Web 密码应用语法规范第3部分 数据加密》
JWE是使用JSON方式来表示数据加密的数据结构,JWE由JOSE头部、JWE密钥密文、JWE初始向量、JWE额外可鉴别数据、JWE密文和JWE鉴别标识组成。
JWE头部参数定义
JWE密钥加密算法
SM2公钥加密算法(SGD_SM2_3)、SM9加密算法(SGD_SM9_3),杂凑算法均指定使用SM3。
JWE内容加密算法
使用可鉴别加密机制算法(SGD_SM4_CCM和SGD_SM4_GCM),具体算法要求如下。
基于SGD_SM2_3(密钥加密算法)和SGD_SM4_CCM(内容加密算法)的数据加密实例
字段 | 内容 |
待加密数据M(明文) | message encryption |
加密密钥算法(标识) | SGD_SM2_3 |
内容加密算法(标识) | SGD_SM4_CCM |
sm2数字证书(base64) | 如上(MIIClzCCAjyg......mXKg==) |
sm2数字证书sm3杂凑值(base64url) | l3n9tvTLguEXRout0wKFp55IGEEMf0DMrCyijdXzcyg |
JOSE头部 | { "alg":"SGD_SM2_3", "enc":"SGD_SM4_CCM", "x5t#sm3":"l3n9tvTLguEXRout0wKFp55IGEEMf0DMrCyijdXzcyg" } |
JOSE头部编码(base64url) | eyJhbGciOiJTR0RfU00yXzMiLCJlbmMiOiJTR0RfU000X0NDTSIsIng1dCNzbTMiOiJsM245dHZUTGd1RVhSb3V0MHdLRnA1NUlHRUVNZjBETXJDeWlqZFh6Y3lnIn0 |
信宿SM2密钥 | { d="AsSpsb0oqEJc1S603kf5l6yW-B2YyS6UZqOg5QhuIjg" |
CEK内容加密密钥(128位随机数) | 719C332571B58835503F8EC25FB81EDA |
信宿公钥对CEK加密(base64url) | BGOY2r20QSlxvN-UDQbgYKCCFJmKiaHsItrC-pZGsYGhrT_j-dS0t-y7bnPKO3gRSyjvGHXGLYdsVRr2MEzh2s7pPvHRGN-bZ_AuZmRA8pH8M7LI1VJlaUfxif04jcXWTUma8n76fTSxu1Kz3w2ABxk |
随机数IV | EjRWeJCrze8 |
额外可鉴别数据A | eyJhbGciOiJTR0RfU00yXzMiLCJlbmMiOiJTR0RfU000X0NDTSIsIng1dCNzbTMiOiJsM245dHZUTGd1RVhSb3V0MHdLRnA1NUlHRUVNZjBETXJDeWlqZFh6Y3lnIn0 |
M加密密文编码Ciphertext(base64url) | d5doM5Y7UBUc-WXiJRgERw |
M加密标志编码Tag(base64url) | RAPO79sKY5hqSQ |
相关文章:

Web应用JSON数据保护(密码算法、密钥、数字签名和数据加密)
1.JSON(JavaScript Object Notation) JSON是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据。JSON通过简单的key-value键值对来描述数据,可以被广泛用于网络通信、数据存储等各种应用场景࿰…...

【软件安装】VMware安装Centos7虚拟机并且设置静态IP,实现Windows和Centos7网络互相访问
这篇文章,主要介绍VMware安装Centos7虚拟机并且设置静态IP,实现Windows和Centos7网络互相访问。 目录 一、VMware安装Centos7 1.1、下载Centos7镜像 1.2、安装Centos7系统 二、设置静态IP地址 2.1、查看虚拟机网络IP 2.2、禁用NetworkManager服务 …...

203. 移除链表元素
203. 移除链表元素 https://leetcode.cn/problems/remove-linked-list-elements/description/ 方法一:迭代 迭代遍历链表 注意:这里的head是指向第一个节点的(首元节点),并没有一个虚拟的头节点,所以这…...

最新鸿蒙HarmonyOS4.0开发登陆的界面1
下载deveco-studio 说明一下,本人只是学习中,现在只是拿着vue及uniapp的经验在一点一点的折腾,不过现在看来,鸿蒙入门并不是很难。也许是自己没有深入下去。 https://developer.harmonyos.com/cn/develop/deveco-studio#download…...

【模型训练】目标跟踪
【模型训练】目标跟踪...

zabbix——实现高效网络监控
在当今的数字化时代,网络和服务器的健康状况对于企业的正常运营至关重要。为了及时发现和解决潜在的问题,许多企业选择使用网络监控工具来追踪服务器的性能和网络参数。其中,Zabbix是一个功能强大且开源的网络监控工具,被广泛应用…...

LeetCode力扣每日一题(Java):58、最后一个单词的长度
一、题目 二、解题思路 1、我的思路 先将字符串转换成字符数组 由于我们需要获取最后一个单词的长度,所以我们从后往前遍历字符数组 我们还需判断所遍历的字符是不是字母,即判断每个字符对应的ASCII值即可,用计数器count来储存单词长度 …...

一、python requests爬虫[基础、上传文件、会话维持、代理设置]
一、requests 1. 发送 解释:向服务器发送请求 1.1 请求页面方式 requests.get(www.baidu.com) requests.post(www.baidu.com) 1.2请求参数 1.2.1 get params {"id":16,"name":"jack" } requests.get(www.baidu.com,paramspara…...

ActiveMQ使用指南
介绍 ActiveMQ是Apache开源组织旗下的一个项目,是一个流行的开源消息中间件。它完全支持JMS1.1和J2EE1.4规范的JMS Provider实现,并且是纯Java开发的产品。ActiveMQ支持多种语言编写客户端,包括C,C,C#,Perl,PHP,Ruby,Ajax等,同时…...

动态SQL学习及使用场景(简略)
假设我们有一个商品表,包含id、name、price和category四个字段。现在需要实现修改商品价格的功能,我们可以使用动态SQL实现。 首先,我们需要构造一个SQL语句,根据用户提供的参数来动态生成,具体实现如下: …...

【算法每日一练]-动态规划(保姆级教程 篇13)POJ2686马车旅行 #POJ3254 玉米田 #POJ1185:炮兵阵地
目录 今天知识点 dp每个票的使用情况,然后更新此票状态下的最优解,dp到没有票就行了 dp每行的种植状态,从i-1行进行不断转移 dp每行的种植状态,从i-1和i-2行进行不断转移 POJ2686马车旅行 思路: POJ3254 玉米田…...

工业固体废物智能化综合管控平台
工业固体废物智能化综合管控平台,涵盖产废企业、运输企业、固废处置企 业等不同群体应用,根据不同群体设计不同的业务应用子系统功能,以及各个不 同群体的环保物联网平台子系统功能模块,同时具有移动端的应用APP。 建立产废企业端…...

玩转大数据12:大数据安全与隐私保护策略
1. 引言 大数据的快速发展,为各行各业带来了巨大的变革,也带来了新的安全和隐私挑战。大数据系统通常处理大量敏感数据,包括个人身份信息、财务信息、健康信息等。如果这些数据被泄露或滥用,可能会对个人、企业和社会造成严重的损…...

Qt工程文件分离、Qtimer定时器、Qt Creator 常用快捷键
Qt 工程文件分离 不含 UI 的文件分离 以堆栈窗体的代码为例。 firstpagewidget.h #ifndef FIRSTPAGEWIDGET_H #define FIRSTPAGEWIDGET_H#include <QtWidgets> // 记得修改class firstPageWidget : public QWidget {Q_OBJECT public:explicit firstPageWidget(QW…...

验收支撑-软件项目验收计划书
软件项目验收计划的作用主要有以下几点: 确保项目质量:通过项目验收,客户或相关方可以对项目的成果进行全面、系统的评估,以确保项目达到预期的质量标准。发现和解决问题:在项目开发过程中,难免会存在一些问…...

SQL注入绕过技术
预计更新SQL注入概述 1.1 SQL注入攻击概述 1.2 SQL注入漏洞分类 1.3 SQL注入攻击的危害 SQLMap介绍 2.1 SQLMap简介 2.2 SQLMap安装与配置 2.3 SQLMap基本用法 SQLMap进阶使用 3.1 SQLMap高级用法 3.2 SQLMap配置文件详解 3.3 SQLMap插件的使用 SQL注入漏洞检测 4.1 SQL注入…...

锂电池基础知识及管理方式总结
这两天在排查一个锂电池无法充电的问题,用的是电池管理芯片BQ25713,网上相关的资料也很少,查看数据手册时,里面也有很多术语参数等不是很理解,所以,在此对锂电池的基础知识做个简单的总结,方面后…...

小红书基于零信任 SASE 办公安全解决方案,斩获 “IDC 中国 20 大杰出安全项目”
近日,由 IDC 主办的 2023 全球 CSO 网络安全峰会(中国站)在京举行,峰会荟萃 300 生态伙伴和行业领袖,共同探讨新形势下的数据安全保护,畅议未来网络安全的可靠航道。 会上,“2023 IDC 中国20大杰…...

html通过CDN引入Vue使用Vuex以及Computed、Watch监听
html通过CDN引入Vue使用Vuex以及Computed、Watch监听 近期遇到个需求,就是需要在.net MVC的项目中,对已有的项目的首页进行优化,也就是写原生html和js。但是咱是一个写前端的,写html还可以,.net的话,开发也…...

【LabVIEW学习】5.数据通信之TCP协议,控制电脑的一种方式
一。tcp连接以及写数据(登录) 数据通信--》协议--》TCP 1.tcp连接 创建while循环,中间加入事件结构,创建tcp连接,写入IP地址与端口号 2.写入tcp数据 登录服务器除了要知道IP地址以及端口以外,需要用户名与密…...

uview1 的u-tabs组件在微信小程序中会出现横向滚动条
uview1 的u-tabs组件在微信小程序中会出现横向滚动条,真机才会生效,微信开发者工具没问题包括官方示例也会 原因:未屏蔽微信小程序的滚动条 解决办法:uview-ui中uview-ui/components/u-tabs/u-tabs.vue文件把h5屏蔽滚动条的条件编…...

服务器ipv6地址显示“scope global dadfailed tentative noprefixroute”无法连通的问题处理一例
服务器规模启用ipv6地址后,遇到一起案例 ,配置的服务ipv6地址显示“scope global dadfailed tentative noprefixroute”,无法连通,现将解决过程记录如下。 一、问题情况 1、ipv6信息检查 某台服务器配置ipv6地址后,…...

深度学习学习顺序梳理
https://www.bilibili.com/video/BV1to4y1G7xq/?spm_id_from333.999.0.0&vd_source9607a6d9d829b667f8f0ccaaaa142fcb 1.吴恩达机器学习课程 已学完,时间较久了,后续可以重新听一遍,整理一下笔记 2. 白板推导读西瓜书 统计学习方法看…...

机器学习实验六:聚类
系列文章目录 机器学习实验一:线性回归机器学习实验二:决策树模型机器学习实验三:支持向量机模型机器学习实验四:贝叶斯分类器机器学习实验五:集成学习机器学习实验六:聚类 文章目录 系列文章目录一、实验…...

逆向思考 C. Fence Painting
Problem - 1481C - Codeforces 思路:逆序考虑,因为每一块木板都是被最后一次粉刷所决定的。 从后往前开始,对于 c i c_i ci来说, 如果这个颜色还有没有涂的木板,那么涂到其中一个木板即可如果这个颜色下没有未涂的…...

当当狸AR智能学习图集跨越千年文明传承,邀您“面对面”与虚拟诗人互动对诗
中华传统文化底蕴深厚,余韵悠长。即使经过千年的历史裂变,依然历久铭心慰藉着一代又一代人的灵魂。千百年后的今天,成为了我们独一无二的财富。 如今,国人学习中华传统文化的方式有很多,诗词集、动画影片、诗歌传颂等…...

CESM笔记——component活动状态+compset前缀解析+B1850,BHIST区别
时隔一年没写CSDN笔记了,一些CESM的知识点我都快忘了。诶,主要是在国外办公室的网屏蔽了好多国内的网络,CSDN登不上,回家又不想干活。。。好吧,好多借口。。。 昨天师弟问我一些问题,想想要不可以水一篇小…...

vue 页面跳转时,浏览器上方显示进度条
vue 页面跳转时,浏览器上方显示进度条 文章目录 vue 页面跳转时,浏览器上方显示进度条先看效果一、安装 nprogress二、main.js 引入nprogress1.引入库 三、在router.js中对路由钩子进行设置四、测试 先看效果 vue 页面跳转时,浏览器上方显示进…...

tqdm输出字符串被截断
tqdm输出截断 1.遇到的问题2.tqdm默认的字符串长度是80(ncols属性)3.修改tqdm的ncols属性4.本人字符串长度是64 1.遇到的问题 字符串打印,显示不完整, 2.tqdm默认的字符串长度是80(ncols属性) 3.修改tqdm的…...

Qt::UniqueConnection和lambda一块用无效
如果槽函数是lambda。 那么用了Qt::UniqueConnection也会出现槽函数被多次调用的问题。 原因: 参考官方文档: QObject Class | Qt Core 5.15.16https://doc.qt.io/qt-5/qobject.html#connect...