我有一个已签名的数据与十六进制格式的公钥一起传递到我的服务器,该数据已经签名。哈希算法对于所有请求sha-256都是相同的,但公钥对于每个请求都是不同的,因为在客户端上生成了rsa public + private pair。
所以我的问题是 - 如何用十六进制格式的公钥验证签名?在节点的crypto
文档中,我看到我需要一个pem格式的文件,但我没有。实际上会有很多此类请求,因此创建这些文件并不好。
答案 0 :(得分:1)
唐'吨。认真。唐'吨。滚动你自己的cryto will be bad。
相反,请使用https,或者,如果真的必须自己执行,请尝试实施Diffie-Hellman。至少对于DH,您不能创建自己的算法。至于为什么这很糟糕,请考虑一个想要读取数据的攻击者。如果你只是签名,那与在现实生活中签署一封信真的没什么不同。这是你的签名,(大多数情况下)没有其他人可以做到。但是,如果我偷了你的那封信,写下我自己的信并用我的签名(使用你的名字)签名,收件人就会知道你不是。可是等等!如果您之前从未联系过此收件人怎么办?他们不知道谁在用自己的名字写作和签名。真的是你吗?还是我?您需要进行密钥交换以防止这种情况发生。