使用了https后,还有必要使用md5对数据进行签名来确保数据没有被篡改吗?

发布于 2022-09-04 02:55:02 字数 209 浏览 23 评论 0

看到很多api中(X宝,X信,X东等等),即便请求要求强制使用https了,但是还要对数据进行md5签名,有的甚至多次签名。有这个必要吗?这样做是为了解决什么问题呢?

PS:这里的签名指的是对所传的数据内容+时间戳+一个key 进行排列组合只收进行MD5加密 生成的字符串。这个字符串将会随着所传的数据内容一并发送到服务器。之后服务对数据内容进行同样的方式签名 来保证数据没有被篡改过。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

嗼ふ静 2022-09-11 02:55:02

1、互联网是不可信的。
即使你用了https,对方也用了https,但中间如果有一个什么玩艺能做到欺骗你们两个,那么这个https就没有意义了,坏人可以拿中间这个数据随便搞你俩。

所谓的https就是相信第三方机构,但是前提说了,互联网是不可信的,如果这个第三方机构背叛了用户和服务商呢?
所以就要自己再做一份加密。

2、时间戳和key(未验证)
有时候服务器让你发一份请求发给他,你的确发了一个请求给他,但是网络有问题,你的确发了,服务器却没收到,服务器觉得,嗯,这不对劲,你要重新发一份,于是你又发了个请求给他,他这次收到了。但是你第一次发的请求却也鬼使神差的也到了(乱序),这服务器就会以为你发了两次请求了,如果没有key和时间戳,服务器是分不清你是发了1次还是2次,哪次才是有效的,可能就要扣你两次款了。

檐上三寸雪 2022-09-11 02:55:02

因为HTTPS并不是绝对安全的,我们进行MD5签名可以让数据的完整性更加的有保证,我们在自己的项目中,对数据进行了AES加密,而且也进行了多次的MD5摘要,使数据的安全进一步有保证。

他是夢罘是命 2022-09-11 02:55:02

这里使用签名的目的并不是加密,而是有多个:
首先是防止抵赖,因为你按照服务器的要求进行了完整签名,确认这个交易是你的真实意愿,服务器才认可你的请求,并且记录这个签名。如果你以后不认帐,可以通过这个签名确认是你的行为。所以,如果是支付API,这个签名在生成时还会带上一个服务器发给你的密钥。
其次是防止被重放攻击,https本身仍可以进行中间人攻击,并没有完全解决加密问题,截取交易请求重新发送是完全可能的,但通过这个签名和时间戳,就可以防止交易被重复发送。即使被重复发送,服务器也可以拒绝重复处理。

初熏 2022-09-11 02:55:02

要给你用的啊,支付回调的时候传支付成功给你,要签名才能保证不是有心人直接请求了你的支付回调页面。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文