这与导致S / MIME签名和XML签名出现问题的问题相同。 即,要签名的数据有多个等效表示。

例如在JSON中:

{ "Name1": "Value1", "Name2": "Value2" }

{

"Name1": "Value\u0031",

"Name2": "Value\u0032"

}

或者根据您的应用程序,这甚至可能是等效的:

{

"Name1": "Value\u0031",

"Name2": "Value\u0032",

"Optional": null

}

规范化可以解决该问题,但这是您根本不需要的问题。

如果您可以控制规范,则简单的解决方案是将对象包装在某种容器中,以防止将其转换为“等效”但不同的表示形式。

即 通过不对“逻辑”对象签名而不是对它的特定序列化表示形式签名来避免该问题。

例如,JSON对象-> UTF-8文本->字节。 将字节签名为字节,然后将其作为字节发送,例如 通过base64编码。 由于您要对字节进行签名,因此诸如空格之类的差异是已签名内容的一部分。

而不是尝试这样做:

{

"JSONContent": { "Name1": "Value1", "Name2": "Value2" },

"Signature": "asdflkajsdrliuejadceaageaetge="

}

只是这样做:

{

"Base64JSONContent": "eyAgIk5hbWUxIjogIlZhbHVlMSIsICJOYW1lMiI6ICJWYWx1ZTIiIH0s",

"Signature": "asdflkajsdrliuejadceaageaetge="

}

即 不要签名JSON,请签名编码的JSON的字节。

是的,这意味着签名不再透明。

json rpgmv 加密_加密-如何对JSON对象进行加密哈希处理?相关推荐

  1. form标签的action之前 加密_口令爆破之突破前端JS加密

    0x00 前言 近期安全测试时发现一个系统前台使用了SSO,但是在比较隐蔽API中发现了后台的登录接口,该接口未使用SSO,同时没有图形验证码等校验,通过分析最终爆破进入后台. 0x01 确认攻击途径 ...

  2. jquery java json转字符串_用jQuery以及JSON包将表单数据转为JSON字符串

    用jQuery以及JSON包将表单数据转为JSON字符串 [日期:2013-01-10] 来源:Linux社区 作者:Linux [字体:大 中 小] 提供一个将表单数据转为json对象,再转为字符串 ...

  3. java 字符串 加密_如何用JAVA实现字符串简单加密解密?

    展开全部 java加密字符串可以使用des加密算法62616964757a686964616fe4b893e5b19e31333363376462,实例如下: package test; import ...

  4. 0宽字符加密_一文看懂异或加密,有动画演示呦

    应用程序保护是指单词和应用程序 什么是异或加密 在逻辑运算中,除了 与 或 非 这 3 种运算之外,还有一种运算运算叫做 异或(xor),符号记为 ^,异或运算简单来说就是 相同为 0,不同为 1, ...

  5. java sha256加密_如何用Sha256进行简单的加密或者解密

    个人是今天第一次使用Sha256对数据进行加密操作,以往都是直接使用MD5加密最多也就是加盐之后再进行加密 不过可能是个人应用的只是简单的一个对数据的加密,所以感觉目前和MD5差距并不是很大. 1.首 ...

  6. java 字符串加密_如何用JAVA实现字符串简单加密解密?

    展开全部 java加密字符串可以使用des加密算法,实例如62616964757a686964616fe59b9ee7ad9431333337616636下: package test; import ...

  7. java list转json报错_一个fastjson转换JSON字符串的报错排查

    今天给一个java类加了几个字段,没想到转为json字符串的时候报错了,定位了一下原因,觉得这种情况遇到的应该不多,又想起来很久没写博客了,于是就把遇到的问题以及定位过程记下来,省了以后遇到的人再花时 ...

  8. swift加密_如何使用Swift和Laravel创建加密跟踪应用程序的后端

    swift加密 by Neo Ighodaro 由新Ighodaro 如何使用Swift和Laravel创建加密跟踪应用程序的后端 (How to create the backend of a cr ...

  9. byte用json存 c++_玩转golang——JSON高性能自动字段名

    前言 golang最近在中国非常火爆,尤其是后端服务开发场景.原生并发支持.优秀的性能.统一的风格,极大提升了开发效率.笔者用golang独立开发过不少小中型系统,写了几万行代码,确实很爽. 不过,统 ...

  10. java设置pdf加密_如何使用Java对PDF进行加密,密码保护和设置受限权限

    java设置pdf加密 Today we will be looking at the document workhorse that is PDF, and how to programmatica ...

最新文章

  1. 赠书 | 联邦学习如何在视觉领域应用?
  2. pandas使用query函数删除dataframe中某一列数值等于某一特定值的行(remove dataframe rows baed on column value)
  3. 第十六届全国大学生智能汽车竞赛总决赛 AI视觉组线上赛细则
  4. GO语言使用的几个注意点
  5. Pylearn2之YAML
  6. OSChina 周四乱弹 ——我高考,媳妇还在读小学
  7. spring boot aop 记录方法执行时间
  8. Flutter 中的国际化之多语言环境
  9. java中的holder类_java – HashMap中Holder类的用途是什么?
  10. Gemini创始人:如果我是GameStop CEO 接下来我会买BTC
  11. Master-Worker设计模式介绍
  12. R语言ETL工程:连接(join)
  13. 在学校外边找了份工作
  14. Java程序员面试简历模板
  15. 关于c语言中%g(G)的用法和精度问题
  16. 全国大学生英语竞赛【常考词汇】
  17. L1-061 新胖子公式 (10 分)C语言
  18. vue3:兄弟组件,跨组件传值,事件总线的通信方式(mitt / tiny-emitter)
  19. GNU Screen的使用方法
  20. 使用晨曦记账本,记录家庭财政收支明细

热门文章

  1. 计算机可以进行磁盘管理,磁盘管理里可以看到盘 但是我的电脑里没有
  2. Ubuntu16.04安装x11vnc服务并设置自动启动
  3. iOS教程:移动终端游戏动画设计的12个原则
  4. 基因数据处理8之BWA_MEM小数据集处理(成功)
  5. 深度探索c++对象模型(5):ctor、dtor、copy
  6. .Net 简单使用 Hangfire
  7. Java学习day07-Java高级编程-多线程
  8. Windows平台下GTK 窗口在任务栏的隐藏问题以及解决办法
  9. 花998购买的拍摄技巧和7天起号培训文档,学了一周的总结。
  10. 培训python开发 骗局