0

我有一个 JavaScript 前端和一个 Java 后端。我让用户在前端使用 web3js 用他的私钥签署原始交易。之后,签名的交易被返回到 Java 后端,后端通过奇偶校验实例广播交易。

我的问题:我害怕黑客,他们可以在签署之前在浏览器中用 javascript 操纵原始交易。通过这种方式,他们可以更改正在发送的金额。有没有办法提取将从与 web3j 签署的交易中发送的金额?如果是,我可以在广播签名交易之前再次检查该值。

顺便说一句:如果它在某种程度上很重要,那就是代币交易,而不是 ETH 交易。

谢谢!

4

1 回答 1

0

嗯,这需要一点密码学的理解。

在私钥/公钥对加密中,“签名”基本上是您使用私钥加密并使用 pub 密钥解密的唯一情况。如果您设法解密,则意味着签名是有效的,因为无论该 pub 密钥属于谁,肯定是谁签署了内容。

因此,如果您拥有 pub 密钥,则可以解密“签名”交易。

现在,如果您担心黑客和安全性,那么将密钥保存在客户端和内存中并不是一个好习惯。因此,如果这是一个严肃的项目,您可能需要重新审视您的方法。

于 2019-07-04T08:29:47.870 回答