『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 1710|回复: 9

[技术探讨] (被ryanh7d解决)阿里示例哈希计算我的结果就...

[复制链接]

56

主题

929

帖子

4064

积分

论坛元老

Rank: 8Rank: 8

积分
4064
金钱
3134
HASS币
0
发表于 2022-4-11 23:37:20 | 显示全部楼层 |阅读模式
本帖最后由 bainiu 于 2022-4-13 07:52 编辑

1、阿里官网签名机制示例:https://help.aliyun.com/document_detail/69009.html

2、已构造代签名字串:
GET&%2F&AccessKeyId%3Dtestid%26Action%3DCreateKey%26Format%3Djson%26SignatureMethod%3DHMAC-SHA1%26SignatureVersion%3D1.0%26Timestamp%3D2016-03-28T03%253A13%253A08Z%26Version%3D2016-01-20
3、用于哈希计算的key为:testsecret&


4、阿里签名计算公式是,先哈希再Base64,他的例子计算结果是


41wk2SSX1GJh7fwnc5eqOfiJPF****


5、以上都是示例内容。

6、下面是我的计算方法。


我用nodered节点的计算和网页在线工具计算结果都一样,但都和阿里示例不同。在线工具https://tool.chinaz.com/tools/base64.aspx

7、我的哈希计算结果
e35c24d92497d46261edfc277397aa39f8893c58

8、将上面的字串Base64计算的结果
ZTM1YzI0ZDkyNDk3ZDQ2MjYxZWRmYzI3NzM5N2FhMzlmODg5M2M1OA==



9、我是真的不会,大佬别笑我。简单的一个示例我硬是没搞懂,以为自己看懂了,但就是结果不对,算的结果长度都不对,太伤自尊了。我肯定是自己错的,但是真不知道自己错在哪,请大家帮忙。
回复

使用道具 举报

56

主题

929

帖子

4064

积分

论坛元老

Rank: 8Rank: 8

积分
4064
金钱
3134
HASS币
0
 楼主| 发表于 2022-4-12 07:14:58 | 显示全部楼层
本帖最后由 bainiu 于 2022-4-12 07:27 编辑
ryanh7 发表于 2022-4-12 01:10
签名得到是16进制字符串,应该先转二进制再base64

感谢大佬指点,我的哈希结果是对的吗?是指将以下结果二进制后,再base64?我算的还是不对。大佬能否把每步结果告诉我。谢谢
e35c24d92497d46261edfc277397aa39f8893c58

回复

使用道具 举报

56

主题

929

帖子

4064

积分

论坛元老

Rank: 8Rank: 8

积分
4064
金钱
3134
HASS币
0
 楼主| 发表于 2022-4-12 08:58:44 | 显示全部楼层
ryanh7 发表于 2022-4-12 01:10
签名得到是16进制字符串,应该先转二进制再base64

搞懂了,是HMAC计算返回原始二进制数据后进行Base64编码,谢谢
回复

使用道具 举报

56

主题

929

帖子

4064

积分

论坛元老

Rank: 8Rank: 8

积分
4064
金钱
3134
HASS币
0
 楼主| 发表于 2022-4-12 10:51:49 | 显示全部楼层
ryanh7 发表于 2022-4-12 01:10
签名得到是16进制字符串,应该先转二进制再base64

再请教大佬,我在nodered上用HMAC节点计算,结果输出总是十六进字串,请问我要如何得到HMAC计算返回的原始二进制数据呢,哎,这一步我又不会。太难啦,我的结果总是A,就是不知道如何得到B 。
截图-2022年4月12日 10时38分11秒.png
回复

使用道具 举报

56

主题

929

帖子

4064

积分

论坛元老

Rank: 8Rank: 8

积分
4064
金钱
3134
HASS币
0
 楼主| 发表于 2022-4-12 23:47:40 | 显示全部楼层

感谢大佬回复,我今天在阿里提工单,他们工程师不给我玩nodered。我把你的代码放这个函数还是没能算出,出错了,是不是这个加密函数没有定义。大佬的函数我基本看懂了,是不是我的nodered还有一些依赖或节点没有?我的nodered版本11.1.1

A7D8C812-D7F4-4CEE-A633-314DC14D0E6F.jpeg
回复

使用道具 举报

56

主题

929

帖子

4064

积分

论坛元老

Rank: 8Rank: 8

积分
4064
金钱
3134
HASS币
0
 楼主| 发表于 2022-4-13 07:49:11 | 显示全部楼层
ryanh7 发表于 2022-4-13 00:56
函数里的setup,添加crypto导入为crypto

大佬牛B啊,请收下我的膝盖吧。昨天按官网的教程获取token,在win10下安装node.js,将js生成的结果输出到文件,再用nodered读取数据,一堆乱七八糟的折腾好复杂。被大佬的一行代码解决,佩服佩服。越往后面玩,越被导向去学习各种编程语言。我20年前的sql,asp,html现在基本没有什么用了。今天第一次用函数的setup,哈哈。你这段话我开始又没看懂,以为在函数里面写setup........引入crypto,Google了半天https://discourse.nodered.org/t/using-sha-or-md5-inside-function-node/55040,再次谢谢大佬。

8CCDEC8D-C9AC-4661-A3DD-BA4471C0829F.jpeg
回复

使用道具 举报

45

主题

636

帖子

3773

积分

论坛元老

Rank: 8Rank: 8

积分
3773
金钱
3137
HASS币
0
发表于 2022-5-31 13:29:22 | 显示全部楼层
bainiu 发表于 2022-4-12 10:51
再请教大佬,我在nodered上用HMAC节点计算,结果输出总是十六进字串,请问我要如何得到HMAC计算返回的原 ...

我的跟你一样 我也解决 你的解决了吗
回复

使用道具 举报

56

主题

929

帖子

4064

积分

论坛元老

Rank: 8Rank: 8

积分
4064
金钱
3134
HASS币
0
 楼主| 发表于 2022-5-31 14:38:25 | 显示全部楼层
wangmucha 发表于 2022-5-31 13:29
我的跟你一样 我也解决 你的解决了吗

我的解决了呀,在函数里导入crypto
回复

使用道具 举报

45

主题

636

帖子

3773

积分

论坛元老

Rank: 8Rank: 8

积分
3773
金钱
3137
HASS币
0
发表于 2022-5-31 22:08:25 | 显示全部楼层
bainiu 发表于 2022-5-31 14:38
我的解决了呀,在函数里导入crypto

哦?跟我不一样点,我是用节点插件解决的,你的方法能分享下吗
回复

使用道具 举报

56

主题

929

帖子

4064

积分

论坛元老

Rank: 8Rank: 8

积分
4064
金钱
3134
HASS币
0
 楼主| 发表于 2022-5-31 23:44:53 | 显示全部楼层
wangmucha 发表于 2022-5-31 13:29
我的跟你一样 我也解决 你的解决了吗

我是按6楼大佬的回复搞定的。你也在玩阿里云的服务吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-9-22 17:26 , Processed in 0.070642 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表