在javascript算法中使用私有MD5密钥的安全方式

Secure way of using private MD5 key in javascript algorith?

本文关键字:密钥 MD5 安全 方式 算法 javascript      更新时间:2023-09-26

我想将在线支付与我的网络(html+jquery)集成。最简单的方法就是在特定的链接上发送表格。其中一个参数是签名。签名是来自字段和私钥的散列。问题是我不想在javascript代码中公开我的私钥。有安全的方法吗?

以下是表单的测试代码:http://developers.payu.com/en/restapi.html#creating_new_order_form以及签名生成算法:http://developers.payu.com/en/restapi.html#references_form_signature

简短的回答是……不。嗯,也许,但不是真的。

您无法在Javascript中安全地完成整个过程,因为它要求您将密钥加载到用户浏览器中。这是一个即时安全游戏结束。

可以做的是在某个地方设置一个服务器(密钥存储),用于保存您的私钥并根据需要加密消息。这会阻止最终用户看到你的私钥,但这只会让问题进一步恶化——你怎么知道提出请求的浏览器是真正的用户,而不是恶意用户?如果你只是在出示的任何东西上签名,你还不如完全跳过安检。如果你无论如何都要有一个服务器,为什么不使用它来服务网页和验证表单数据呢?

所以,实际上,你需要一些服务器端的东西来验证用户输入,检查它是否正常/不受影响,然后签署消息并将其传递出去

你必须问问自己,为什么你需要在浏览器中这样做。。。签署一条信息的全部意义在于证明它来自谁。如果它来自别人的浏览器,而你对该消息一无所知,你为什么要把它签名为真实的、来自你的?