springboot~关于md5签名引发的问题

这篇具有很好参考价值的文章主要介绍了springboot~关于md5签名引发的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

事实是这样的,我有个接口,这个接口不能被篡改,于是想到了比较简单的md5对url地址参数进行加密,把这个密码当成是sign,然后服务端收到请求后,使用相同算法也生成sign,两个sign相同就正常没有被篡改过。

问题的出现

  • 接口中的参数包括userId,extUserId,时间,其中extUserId字符编码,中间会有+这种符号
  • 有些用户使用签名接口正常
  • 有一些用户总显示签名失败

问题原因

  • 因为有些用户的extUserId中包括了url上的特殊字符,它不能正常在在url上传输,必须进行urlEncode编码才行,这一点非常容易被忽略;程序中一般不需要手动urlDecode解码,都是由框架帮我们实现的。
  • 下面整理了一些url上需要编码的字符:
    • + URL中+表示空格 十六进制: %2B
    • / 分离目录和子目录 十六进制 : %2F
    • ? 分离实际的URL和参数 十六进制: %3F
    • % 特殊字符 十六进制: %25
    • # 表示书签 十六进制: %23
    • & URL中指定参数间的分隔符 十六进制: %26
    • = URL中指定参数的值 十六进制:%3D
    • 空格 URL中的空格可以用+号或者编码 十六进制 : %20

url在签名时一般这样处理

sign=md5(userId+extUserId+simpleDateFormat.format(new Date()) + SECRET).toUpperCase();
?extUserId=URL.Encode(extUserId)&sign=sign

注意:sign中是接收的参数,它不需要Encode,应该框架已经帮我们做了;而向下传递的url参数extUserId是需要手动Encode的。文章来源地址https://www.toymoban.com/news/detail-422705.html

到了这里,关于springboot~关于md5签名引发的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • App备案——获取公钥和MD5签名

    阿里云App备案入口:https://beian.aliyun.com/pcContainer/myorder 当我们进行App备案时,需要填写App的公钥和MD5签名信息,公钥和 MD5 值可以通过安卓开发工具、Keytool、Jadx-GUI 等多种工具获取,本文以 jadx-gui 为例。 特征信息名词 说明 (安卓 Android)包名 APP 包名是一个应用程序的唯一

    2024年01月18日
    浏览(39)
  • 查看 apk签名密钥和MD5值

    找到jdk安装目录,例如::C:Program FilesJavajdk-11.0.14bin。 cmd:::窗口 -》 keytool -printcert -jarfile Service.apk

    2024年02月09日
    浏览(34)
  • 安卓keytool获取不到签名文件的MD5

    目前通过 keytool -list -v -keystore xxx.jks 这种方法获取签名的md5时,只能显示SHA1和SHA256,不显示md5: 解决办法: 1.先将自己的keystore配置进app下的build.gradle中: 2.打开AndroidStudio的Gradle,找到Tasks-android-signingReport,双击: 找到Config为release,Alias与你签名文件的别名一致的信息,即可

    2024年02月11日
    浏览(43)
  • APP备案(Android) - 获取签名证书公钥、MD5

    因为近期刚针对各应用平台对APP备案时间节点要求进行了统一整理,然后隔天就被要求提供一下app相关的的公钥和MD5,虽然很快就解决了这个事情,但忍不住又稍微衍生了一下,但行小步,莫问远方吧 关联Blog APP备案(Android) - 各应用平台对APP备案时间节点要求 APP备案(Android

    2024年02月04日
    浏览(55)
  • Android打包时签名文件keystore的MD5值

    些SDK提供方需要我们提供打包APK时使用的包名和签名文件(xxxxxx.jks这个文件)MD5值,然后SDK服务端应该会进行比对保证商户调用的合法性。不然光靠包名是可以伪造的,怎么获取签名文件的MD5值? 方法一: 原先通过命令keytool -list -v -keystore test.jks 可以查看md5值,但是发现现在

    2024年02月09日
    浏览(45)
  • APP备案,iOS签名文件MD5、公钥获取方法

    前言 2023年8月,国内开始要求应用市场上架的APP要备案,备案则需要提交安卓APP签名文件中的MD5、公钥等信息,如下图是某平台APP备案需要提交的信息。 获取MD5等信息 最省事方法 针对没有ide工具,没有从事过iOS开发,或想节省时间的朋友,建议通过我们开发的网页来获取

    2024年02月08日
    浏览(41)
  • JMeter处理接口签名之BeanShell实现MD5加密

    项目A需要给项目B提供一个接口,这个接口加密了,现在需要测试这个接口,需要怎么编写脚本呢?实现接口签名的方式有两种: BeanShell实现MD5加密和 函数助手实现MD5加密, 之前已经分享过了函数助手实现MD5加密 ,今天就来分享下BeanShell实现MD5加密。 一、接口信息 POST /a

    2024年02月14日
    浏览(55)
  • 获取安卓签名文件的MD5值与SHA1码

    目录 前言 一、用命令行的方式仅能获取SH1、SHA256 ​编辑 二、用gradle的方式可以获取MD5值 1.打开Android Studio,点击右边的Gradle 2.点击大象,输入查询签名信息的命令 总结 公司App项目要备案,要搜集MD5值与SHA1码,用了以前的命令行方式只获取到SHA1,奇怪,网上学习了下,原来

    2024年02月16日
    浏览(57)
  • uniapp安卓签名证书生成,签名证书的SHA1,SHA256,MD5获取

    uniapp安卓证书生成有两种方式,一种是去dcloud开发者中心生成证书,另一种是安装jre环境,自己生成证书 第一种 dcloud生成证书 去该项目对应的应用处,生成证书需要等几分钟,生成后可以查看证书信息 第二种 自己生成 先安装jre,再配置一下环境变量 jre8下载地址 去D盘添加

    2024年02月16日
    浏览(64)
  • Android创建签名文件,并获取签名文件MD5,SHA1,SHA256值

    一、创建Android签名文件         使用Android Studio开发工具,可视化窗口进行创建 第一步:点击AndroidStudio导航栏上的 Build→Generate Signed Bundle / APK 第二步:选择APK选项    第三步:创建签名文件 第四步:输入创建签名的文件的各内容信息 点击ok,即可完成签名的文件的创建

    2024年02月07日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包