摘要:有的同学对数字签名的认知还不是那么到位,所以签名时的每一个参数具体意义还不了解的情况下就开始签名。这种情况下,还会导致很多错误,其中常见的错误是时间戳错误(InvalidTimeStamp.Expired),本文教给您解决方法。

数字签名后,从阿里云返回的错误代码如下:

1.错误原因分析

原因就在给出的错误上,请点击链接:

https://error-center.aliyun.com/status/search?Keyword=InvalidTimeStamp.Expired&source=PopGw

打开之后,发现是API错误中心,这个错误的描述是:用户时间和服务器时间不在 15 分钟内请检查您的时间戳设置,确认时间戳和服务器时间的差值是否在 15 分钟内。

我们设置的时间与服务器的时间相差15分钟以上!导致了时间戳错误

2.两个错误的解决方法

2.1修改系统时间

有的文章上说,我们可以修改系统的时间为准确的时间,也可以让时间与internet同步。

这种解决方法是行不通的。

2.1手动填写时间

数字签名的时间格式是

SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");

有的同学手动修改时间为当前的时间,然后发现还是不对,仍然是时间戳错误。

map.put("Timestamp", "2021-07-27T15:00:00Z");

这种情况怎么解决?请往下看

3.真正有效的解决方法

3.1错在那里,怎么修改

真正解决问题的方法是设置GMT时区。我们的系统时间并不是GMT!

假如您现在是18点,那么阿里云系统时间应该是10点,就这么简单。因为物联网一定要有一个全球通用的时间!

GMT(Greenwich Mean Time), 格林威治平时(也称格林威治时间)。

它规定太阳每天经过位于英国伦敦郊区的皇家格林威治天文台的时间为中午12点。

当前的世界时间是在GMT基础上的UTC。

UTC 是现在全球通用的时间标准,全球各地都同意将各自的时间进行同步协调。UTC 时间是经过平均太阳时(以格林威治时间GMT为准)、地轴运动修正后的新时标以及以秒为单位的国际原子时所综合精算而成。

GMT是前世界标准时,UTC是现世界标准时。
UTC 比 GMT更精准,以原子时计时,适应现代社会的精确计时。
但在不需要精确到秒的情况下,二者可以视为等同。
每年格林尼治天文台会发调时信息,基于UTC。

关于时间的描述,参考文档:https://www.cnblogs.com/champyin/p/12767852.html

3.2 正确的代码

在您的android 程序中,添加当前的准确GMT时间即可。

java.text.SimpleDateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
df.setTimeZone(new java.util.SimpleTimeZone(0, "GMT"));// 这里一定要设置GMT时区
df.format(new java.util.Date())

以一个计算签名的代码为例,将这些代码添加进入方法中的效果如下图所示:

添加完之后,看运行之后的效果,时间戳就自动以格林尼治时间来表示了。

如此简单。

阿里云数字签名时遇到时间戳错误(InvalidTimeStamp.Expired)怎么办相关推荐

  1. 调用阿里云短信接口,报InvalidTimeStamp.Expired : Specified time stamp or date value is expired.错误

    异常错误 com.aliyuncs.exceptions.ClientException: InvalidTimeStamp.Expired : Specified time stamp or dat ...

  2. java 调用阿里云短信接口,报InvalidTimeStamp.Expired : Specified time stamp or date value is expired.

    首先官网是这样解释的  简单就是,自己的电脑(或者服务器) 的时间跟阿里云的服务器时间 想差 15分钟了, 解决方法就是 : 把自己的电脑时间 (或者服务器)的时间  改成标准的北京时间就行了.

  3. 配置云服务器(阿里云)时遇上问题

    1.登录不上阿里云服务器,但可以登陆上腾讯云服务器 阿里云ECS如何远程连接?(附带排错经验--出现身份验证错误,要求的函数不受支持 可能是由于CredSSP加密Oracle修正) https://b ...

  4. 保存阿里云的邮件模板提示错误Template Text is too large.

    这几天申请开通了阿里云的邮件推送服务,一切配置妥当后,准备我的第一次邮件推送.在保存邮件模板时,提示"Template Text is too large. RequestId: 1CF65 ...

  5. 上传图片到阿里云oss时403 Forbidden

    当点击上传按钮时,浏览器开发工具会出现如下错: 出现上述错误的原因可能有很多,下面是两种可能的解决方案: (1)查看阿里云oss是否是公共读(或者是公共读写) (2)是否设置跨域规则

  6. 记录一个阿里云OSS图片上传错误

    upload.js?c0e8:599 POST https://gulimall-.oss-cn-shanghai.aliyuncs.com/ 403 (Forbidden) 今天打开项目运行的时候放 ...

  7. OSS 阿里云存储操作实例以及错误案例

    前言:OSS 说白了就是把你本地的数据放到阿里云平台中,让其他人可以通过链接访问. 如果还不知道如何创建OSS服务,可以先阅读这篇文章 链接: OSS入门级教程(开通.创建Bucket.配置规则) 第 ...

  8. 使用阿里云服务器时遇到的问题及解决办法

    2019独角兽企业重金招聘Python工程师标准>>> 1.在命令行里面直接输入中文数据会乱码,如果用phpmyadmin就不会了. 2.json返回的数据中中文乱码,通过修改文件的 ...

  9. 注销阿里云账号时提示存在“ecs_group”

    提示"ecs_group",说明仍有ECS中仍存在未删除的安全组,检查并删除ECS中每个区域的安全组.

最新文章

  1. 200kb以上图片储存
  2. google地图经纬度偏移修正算法完美解决方案
  3. 重构智能合约(中):平行宇宙与无限扩展
  4. S3C2440的LCD编程
  5. ICanPay 统一支付网关
  6. python 基础之文件
  7. c 使用RTP协议发送视频数据
  8. java 蓝桥杯算法训练 连续正整数的和(题解)
  9. docker 中运行 mysql
  10. Linux编程(6)_makefile
  11. linux 串口内核加载,linux对串口编程的详解(从应用层到内核驱动,包括232,485)
  12. (3)Mathpix Snipping Tool——公式截图获取工具(转为LaTex、MarkDown格式)
  13. android官网自定义相机,android native.js camera自定义相机
  14. JAVA读取邮件 [AUTH] Username and password not accepted
  15. Velodyne Lidar将被纳入罗素2000指数
  16. 问题解决:应用程序错误0xc00007b
  17. 域名服务是什么意思?
  18. 什么是智能双线机房和BGP智能双线机房的原理
  19. 在mfc的图形控件嵌入opencv的图形窗口
  20. 关于百度和Google的中文搜索

热门文章

  1. 一道经典的Misc图片倒叙题目
  2. SQL语句详解(四)——SQL联表查询
  3. 手绘插画素材| 花语,十二月人间情
  4. 采用 MRT-LBM 模拟旋转圆柱绕流---MATLAB代码--王富海2017--基于 MRT-LBM 的流场与声场仿真计算
  5. IOS13图标尺寸_iOS 13 隐秘的细节:细数iOS13视觉交互变化
  6. 软件测试常见的经典面试题
  7. VS2019登录不上?看这里!
  8. 【程序人生】:看到商汤集团的招聘简章,感觉自己弱爆了
  9. 使用poi-tl根据word模板生成word文件——解决生成的表格里数据行有小标题的这种需求
  10. error TS2786: ‘SortableBody‘ cannot be used as a JSX component.